《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

相关文章
|
SQL 前端开发 关系型数据库
如何开发一套研发项目管理系统?(附架构图+流程图+代码参考)
研发项目管理系统助力企业实现需求、缺陷与变更的全流程管理,支持看板可视化、数据化决策与成本优化。系统以MVP模式快速上线,核心功能包括需求看板、缺陷闭环、自动日报及关键指标分析,助力中小企业提升交付效率与协作质量。
1041 29
|
JSON 文字识别 BI
如何开发车辆管理系统中的加油管理板块(附架构图+流程图+代码参考)
本文针对中小企业在车辆加油管理中常见的单据混乱、油卡管理困难、对账困难等问题,提出了一套完整的系统化解决方案。内容涵盖车辆管理系统(VMS)的核心功能、加油管理模块的设计要点、数据库模型、系统架构、关键业务流程、API设计与实现示例、前端展示参考(React + Antd)、开发技巧与工程化建议等。通过构建加油管理系统,企业可实现燃油费用的透明化、自动化对账、异常检测与数据分析,从而降低运营成本、提升管理效率。适合希望通过技术手段优化车辆管理的企业技术人员与管理者参考。
|
消息中间件 缓存 JavaScript
如何开发ERP(离散制造-MTO)系统中的生产管理板块(附架构图+流程图+代码参考)
本文详解离散制造MTO模式下的ERP生产管理模块,涵盖核心问题、系统架构、关键流程、开发技巧及数据库设计,助力企业打通计划与执行“最后一公里”,提升交付率、降低库存与浪费。
|
前端开发 JavaScript BI
如何开发车辆管理系统中的车务管理板块(附架构图+流程图+代码参考)
本文介绍了中小企业如何通过车务管理模块提升车辆管理效率。许多企业在管理车辆时仍依赖人工流程,导致违章处理延误、年检过期、维修费用虚高等问题频发。将这些流程数字化,可显著降低合规风险、提升维修追溯性、优化调度与资产利用率。文章详细介绍了车务管理模块的功能清单、数据模型、系统架构、API与前端设计、开发技巧与落地建议,以及实现效果与验收标准。同时提供了数据库建表SQL、后端Node.js/TypeScript代码示例与前端React表单设计参考,帮助企业快速搭建并上线系统,实现合规与成本控制的双重优化。
|
消息中间件 JavaScript 前端开发
如何开发ERP(离散制造-MTO)系统中的技术管理板块(附架构图+流程图+代码参考)
本文详解ERP(离散制造-MTO)系统中的技术管理板块,涵盖产品定义、BOM、工序、工艺文件及变更控制的结构化与系统化管理。内容包括技术管理的核心目标、总体架构、关键组件、业务流程、开发技巧与最佳实践,并提供完整的参考代码,助力企业将技术数据转化为可执行的生产指令,提升制造效率与质量。
|
消息中间件 JavaScript 关系型数据库
如何开发一套ERP(离散制造-MTO)系统(附架构图+流程图+代码参考)
本文介绍了面向离散制造-MTO(按订单生产)模式的ERP系统设计与实现方法。内容涵盖ERP系统定义、总体架构设计、主要功能模块解析、关键业务流程(订单到交付、BOM展开、MRP逻辑、排产等)、开发技巧(DDD、微服务、事件驱动)、参考代码示例、部署上线注意事项及实施效果评估。旨在帮助企业与开发团队构建高效、灵活、可扩展的ERP系统,提升订单交付能力与客户满意度。
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
2027 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
12月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1286 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1353 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
1114 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡

热门文章

最新文章