《Android 3D 游戏案例开发大全》——6.3节游戏的架构

简介:

本节书摘来自异步社区《Android 3D 游戏案例开发大全》一书中的第6章,第6.3节游戏的架构,作者 吴亚峰 , 于复兴 , 杜化美,更多章节内容可以访问云栖社区“异步社区”公众号查看

6.3 游戏的架构
Android 3D 游戏案例开发大全
本节主要介绍本游戏的类框架,通过本节的介绍,读者可以进一步了解本游戏的开发过程,为后面要开发的代码部分打下坚实的基础。

6.3.1 各个类简要介绍
为了使读者可以更好地了解各个类的作用,本小节将本游戏中用到的所有类分为4部分进行介绍,而每个类的代码将在后面的小节中相继给出。

1.公共类
Activity的实现类TXZActivity。
TXZActivity是本游戏中的主控制类,此类继承自Activity,是整个游戏的控制类,同时也是整个游戏的入口。

常量类Constant。
本类是常量类,该类主要是存储一些静态常量和静态方法。

2.辅助界面相关类
欢迎界面类TXZWelcomeView。
本类是欢迎界面类,该类是在游戏开始时进行调用。

主菜单界面类TXZMenuView。
本类是主菜单界面类,该类负责绘制菜单界面,以及通过单击按钮跳转到其他界面,例如,进入游戏、设置、选关、帮助、关于等,也可以通过单击返回键直接退出游戏。

主菜单界面机器人部件类MenuBodyPart。
本类是主菜单界面机器人部件类,该类的主要功能是提供给了组装机器人、机器人绘制,以及机器人运动的各种方法。

主菜单界面机器人动作执行类MenuDoActionThread。
本类是主菜单界面机器人动作的执行类,该类主要负责执行机器人的各个动作。
设置界面类TXZSetView。
本类是设置界面类,该类负责设置界面的绘制,该界面的主要功能是实现声音的设置,单击对应的按钮将进行相关的设置。

设置界面机器人部件类SetBodyPart。
本类是设置界面机器人部件类,该类的主要功能是提供给了组装机器人、机器人绘制,以及机器人运动的各种方法。

设置界面机器人动作执行类SetDoActionThread。
本类是设置界面机器人动作的执行类,该类主要负责执行机器人的各个动作。
选关界面类TXZSelectView。
本类是选关界面类,该类负责绘制选关界面,在该界面中玩家可以选择已经解锁的关卡从而进入相应的游戏界面。

选关界面机器人部件类SelectBodyPart。
本类是选关界面机器人部件类,该类的主要功能是提供给了组装机器人、机器人绘制,以及机器人运动的各种方法。

选关界面机器人动作执行类SelectDoActionThread。
本类是选关界面机器人动作的执行类,该类主要负责执行机器人的各个动作。
关于界面类TXTAboutView。
本类是游戏关于界面类,该类负责绘制游戏关于界面,该界面对游戏版权进行了说明,按下返回键可以返回到菜单界面。

帮助界面类TXZHelpView。
本类是游戏帮助界面类,该类负责绘制游戏帮助界面,该界面对游戏玩法进行了说明,单击向右方向键可查看下一条说明;单击向左方向键可查看上一条说明。在第一页单击向左方向键或在最后一页单机向右方向键返回到主菜单界面。

枚举类WhichView。
本类是枚举类,该类主要是存储一些界面的类型。

3.游戏界面相关类
游戏主界面类TXZGameSurfaceView
本类是游戏的主界面类,主要负责游戏界面中各个对象的创建及各个实体的绘制等工作。

游戏线程类TXZDoActionThread。
本类是游戏线程类,其主要负责监听与执行整个游戏过程中产生的动作。

摇杆动作线程类YGDoActionThread。
本类是摇杆动作线程类,其主要负责的是监听与执行摇杆的动作。

机器人类Robot。
本类是机器人类,该类主要负责机器人的组装与绘制,其中包括各个界面中机器人的组装和绘制。

游戏中动作类Action
本类是游戏中动作类,其主要提供了创建动作对象的构造方法,该类对象有动作数据与动作类型。

动作种类枚举类ActionType。
本类是动作种类枚举类,主要负责提供游戏过程中用到的动作的类型,即摄像机的动作、机器人的动作、视角的转换动作、摇杆的移动动作和抬起动作。

游戏界面机器人部件类BodyPart
本类是游戏界面中机器人的部件类,该类的主要功能是提供给了组装机器人、机器人绘制,以及机器人运动的各种方法。

部件的数据类BodyPartData
本类是机器人某个部件的数据类,其中包括机器人子骨骼在初始坐标系中的不动点、子骨骼在父骨骼坐标系中的平移、旋转,以及旋转的辅助平移。

机器人的动作数据类ActionGenerator
本类是机器人的动作数据类,其中包括机器人各种动作的数据。

游戏中动态数据类GameData。
本类是游戏中动态数据类,其主要负责提供游戏中用到的动态数据,以及修改数据的方法。

游戏中静态数据类GameStaticData。
本类是游戏中静态数据类,其主要负责提供游戏中用到的静态数据。

游戏中的关卡类GuanQiaData
本类是游戏中的关卡类,主要负责提供关卡的数据,以及游戏界面中需要的一些数据和方法。

顶点数据管理类 VertexDataManager。
本类是顶点数据管理类,该类负责加载界面所需物体的obj文件与初始化物体顶点位置坐标数据和顶点纹理坐标数据。

加载图片类 PicDataManager。
本类是加载图片的类,该类主要提供了将图片数据加载进内存的方法。

绘制物体类VertexTexture3DObjectForDraw。
本类是绘制物体类,该类负责对物体进行普通的绘制。

绘制物体类VertexTextureNormal3DObjectForDraw。
本类是绘制物体类,该类负责对加载物体进行带光照的绘制。

4.相关工具类
箱子排序类CompareDis。
本类是箱子的排序类,该类实现了接口Comparable,其是根据摄像机与箱子的距离排序。

模型加载类LoadUtil。
本类是模型加载类,该类从obj文件中将模型的相关信息加载进来,然后生成顶点位置坐标数据、顶点纹理坐标数据和法向量数据,最后构造对应的模型对象。

法向量类Normal。
本类是法向量类,该类主要提供了计算平均法向量的方法。

屏幕自适应工具类ScreenScaleUtil。
本类是屏幕自适应工具类,该类主要提供了计算缩放情况的方法。

屏幕自适应工具类ScreenScaleResult。
本类是为ScreenScaleUtil服务,两者共同完成缩放工作,实现游戏全屏显示功能,即实现游戏屏幕的自适应。

记录关卡工具类SharedPreferencesUtil
本类是记录关卡工具类,该类的作用是记录玩家最近一次的关卡数,若是第一次进入游戏,默认为第一关。

声音加载类SoundUtil。
本类是声音加载工具类,该类主要提供了声音缓冲池初始化的方法及声音的播放方法。

法向量的计算类VectorUtil
本类是计算法向量的工具类,其中有向量叉积的计算方法和向量规格化的方法。

6.3.2 游戏框架简介
在前一小节中介绍了游戏中用到的所有类,读者可能对每个类的理解并不深刻,本小结将从游戏的整体架构来介绍,如图6-22所示。


4e89ca3d84d5ce2a71d661c4156cc36ff421b666

从图6-22所示中可以看到,本游戏的类很多,这里不一一介绍,接下来按照程序运行的顺序介绍部分类的作用及游戏的整体框架,具体步骤如下。

(1)打开本游戏,首先进入游戏的主控制类TXZActivity,在该类中首先跳转到欢迎界面TXZWelcomeView。

(2)欢迎界面TXZWelcomeView结束后跳转到主菜单界面TXZMenuView。

(3)在主菜单界面TXZMenuView中单击“设置”按钮进入设置界面TXZSetView,可以对游戏进行设置;单击“选关”按钮进入选关界面TXZSelectView;单击“关于”按钮进入关于界面TXTAboutView,可以查看该游戏版权所属的相关信息;单击“帮助”按钮进入帮助界面TXZHelpView,可以查看游戏的帮助信息。

(4)在主菜单界面TXZMenuView中单击“开始游戏”按钮进入游戏界面TXZGameSurfaceView

相关文章
|
1月前
|
搜索推荐 前端开发 API
探索安卓开发中的自定义视图:打造个性化用户界面
在安卓应用开发的广阔天地中,自定义视图是一块神奇的画布,让开发者能够突破标准控件的限制,绘制出独一无二的用户界面。本文将带你走进自定义视图的世界,从基础概念到实战技巧,逐步揭示如何在安卓平台上创建和运用自定义视图来提升用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开新的视野,让你的应用在众多同质化产品中脱颖而出。
53 19
|
18天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
60 3
|
16天前
|
前端开发 搜索推荐 安全
陪玩系统架构设计陪玩系统前后端开发,陪玩前端设计是如何让人眼前一亮的?
陪玩系统的架构设计、前后端开发及前端设计是构建吸引用户、功能完善的平台关键。架构需考虑用户需求、技术选型、安全性等,确保稳定性和扩展性。前端可选用React、Vue或Uniapp,后端用Spring Boot或Django,数据库结合MySQL和MongoDB。功能涵盖用户管理、陪玩者管理、订单处理、智能匹配与通讯。安全性方面采用SSL加密和定期漏洞扫描。前端设计注重美观、易用及个性化推荐,提升用户体验和平台粘性。
48 0
|
1月前
|
JSON Java API
探索安卓开发:打造你的首个天气应用
在这篇技术指南中,我们将一起潜入安卓开发的海洋,学习如何从零开始构建一个简单的天气应用。通过这个实践项目,你将掌握安卓开发的核心概念、界面设计、网络编程以及数据解析等技能。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供一个清晰的路线图和实用的代码示例,帮助你在安卓开发的道路上迈出坚实的一步。让我们一起开始这段旅程,打造属于你自己的第一个安卓应用吧!
60 14
|
1月前
|
Java Linux 数据库
探索安卓开发:打造你的第一款应用
在数字时代的浪潮中,每个人都有机会成为创意的实现者。本文将带你走进安卓开发的奇妙世界,通过浅显易懂的语言和实际代码示例,引导你从零开始构建自己的第一款安卓应用。无论你是编程新手还是希望拓展技术的开发者,这篇文章都将为你打开一扇门,让你的创意和技术一起飞扬。
|
1月前
|
XML 存储 Java
探索安卓开发之旅:从新手到专家
在数字时代,掌握安卓应用开发技能是进入IT行业的关键。本文将引导读者从零基础开始,逐步深入安卓开发的世界,通过实际案例和代码示例,展示如何构建自己的第一个安卓应用。我们将探讨基本概念、开发工具设置、用户界面设计、数据处理以及发布应用的全过程。无论你是编程新手还是有一定基础的开发者,这篇文章都将为你提供宝贵的知识和技能,帮助你在安卓开发的道路上迈出坚实的步伐。
34 5
|
30天前
|
开发框架 Android开发 iOS开发
安卓与iOS开发中的跨平台策略:一次编码,多平台部署
在移动应用开发的广阔天地中,安卓和iOS两大阵营各占一方。随着技术的发展,跨平台开发框架应运而生,它们承诺着“一次编码,到处运行”的便捷。本文将深入探讨跨平台开发的现状、挑战以及未来趋势,同时通过代码示例揭示跨平台工具的实际运用。
|
1月前
|
XML 搜索推荐 前端开发
安卓开发中的自定义视图:打造个性化UI组件
在安卓应用开发中,自定义视图是一种强大的工具,它允许开发者创造独一无二的用户界面元素,从而提升应用的外观和用户体验。本文将通过一个简单的自定义视图示例,引导你了解如何在安卓项目中实现自定义组件,并探讨其背后的技术原理。我们将从基础的View类讲起,逐步深入到绘图、事件处理以及性能优化等方面。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。
|
1月前
|
运维 监控 Java
后端开发中的微服务架构实践与挑战####
在数字化转型加速的今天,微服务架构凭借其高度的灵活性、可扩展性和可维护性,成为众多企业后端系统构建的首选方案。本文深入探讨了微服务架构的核心概念、实施步骤、关键技术考量以及面临的主要挑战,旨在为开发者提供一份实用的实践指南。通过案例分析,揭示微服务在实际项目中的应用效果,并针对常见问题提出解决策略,帮助读者更好地理解和应对微服务架构带来的复杂性与机遇。 ####
|
1月前
|
搜索推荐 前端开发 测试技术
打造个性化安卓应用:从设计到开发的全面指南
在这个数字时代,拥有一个定制的移动应用不仅是一种趋势,更是个人或企业品牌的重要延伸。本文将引导你通过一系列简单易懂的步骤,从构思你的应用理念开始,直至实现一个功能齐全的安卓应用。无论你是编程新手还是希望拓展技能的开发者,这篇文章都将为你提供必要的工具和知识,帮助你将创意转化为现实。