《Android 3D 游戏案例开发大全》——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所示。

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

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

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

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

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

时间: 2024-12-24 21:30:12

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

《Android 3D 游戏案例开发大全》——6.2节游戏的策划和准备工作

6.2 游戏的策划和准备工作Android 3D 游戏案例开发大全上一节介绍了本游戏的背景及功能,本节将介绍游戏的策划及开发前的准备工作,这些工作虽然略显枯燥,但是在游戏的开发过程中却起到很大的作用.在正式开发游戏前进行细致地策划能让开发人员在开发前对游戏有总体的把握,理清逻辑关系,使游戏开发过程更加顺利. 6.2.1 游戏的策划本小节将对游戏的策划进行简单介绍,在真实的游戏开发中,该步骤还需更细致.更具体.更全面,该游戏的策划如下所列. 游戏情节本游戏属于休闲益智类游戏,情景设置非常简单,主要

《Android 3D 游戏案例开发大全》——6.8节游戏的优化与改进

6.8 游戏的优化与改进Android 3D 游戏案例开发大全至此,本游戏的开发介绍完毕,虽然在开发过程中已经对游戏进行了很多的优化,但游戏中还是有一些不足,笔者在这里仅列出了几个方面. 游戏美工的改进在游戏开发时,笔者已经对美工做了一些工作,让整体界面比较美观,但还是可以改进的,通过对游戏中的图案美化和布局,让游戏更具吸引力. 游戏玩法的改进本游戏玩家可以选择想玩的关卡,但是由于本游戏的关卡并没有那么多.那么难,因此,读者可以根据自己的理解开发出不同挑战难度的游戏. 游戏的进一步优化.虽然笔者

《Unity 游戏案例开发大全》一6.2 游戏的策划及准备工作

6.2 游戏的策划及准备工作 Unity 游戏案例开发大全前一节简单介绍了游戏的背景和功能,本节主要介绍本游戏的策划及正式开发前的一些准备工作.游戏开发需要做的准备工作大体上包括游戏策划.美工需求.音乐等.游戏开发前的充分准备可以保证开发人员有一个顺畅的开发流程,保证开发顺利进行. 6.2.1 游戏的策划 本小节将对游戏的策划进行简单的介绍,通过本小节的介绍,读者将对本游戏的基本开发流程和方法有一个基本的了解.在实际的游戏开发过程中还需更细致.更具体.更全面的策划,该游戏的策划如下所列. 游戏类

《Unity 游戏案例开发大全》一6.1 背景以及功能概述

6.1 背景以及功能概述 Unity 游戏案例开发大全这一节将主要介绍本游戏的背景和功能,让读者对本游戏有一个整体的了解.同时希望通过本节的学习,读者将对本游戏所达到的效果和所实现的功能有一个直观的了解. 6.1.1 游戏背景概述 近年来,休闲益智游戏开始慢慢流行起来,这类游戏的共同特点是没有过于复杂的规则,上手简单但每关设计都非常有逻辑性与可玩性,可以随时掏出来享受游戏的乐趣,所以深得市面上玩家的青睐.这类游戏的代表作品主要有<愤怒的小鸟>.<指划射门>等,如图6-1和图6-2所

《Android 3D 游戏案例开发大全》——6.4节主控制类——TXZActivity类的开发

6.4 主控制类--TXZActivity类的开发 Android 3D 游戏案例开发大全 Android程序中,Activity是最重要的类之一.在本游戏中,TXZActivity继承自Activity类,为本游戏的主控制类,本节将具体介绍TXZActivity的开发,其具体步骤如下. (1)主控制类代码非常多,首先搭建主控制类的框架,以帮助读者理解,主控制类框架代码如下. 1 package com.bn.txz; //声明包 2 --//此处省略了本类中导入类的代码,读者可以自行查阅随书光

《Android 3D 游戏案例开发大全》——6.6节游戏界面相关类

6.6 游戏界面相关类 Android 3D 游戏案例开发大全 前一小节为读者介绍了辅助界面相关类,本小节将对游戏界面相关类进行介绍,首先介绍游戏界面的各个组成部分,然后介绍游戏整体界面的开发,逐步完成对游戏界面的开发,下面就对这些类的开发进行详细介绍. 6.6.1 顶点数据管理者VertexDataManager 本小节为读者介绍的是整个游戏过程中所有物体顶点数据的管理者VertexDataManager,具体开发步骤如下. (1)首先为读者介绍的是本类主要框架的开发,其代码如下. 1 pac

《Android 3D 游戏案例开发大全》——6.5节辅助界面相关类

6.5 辅助界面相关类 Android 3D 游戏案例开发大全 前一小节介绍了主控制类TXZActivity,本小节将对该游戏的辅助界面相关类进行介绍,该游戏的辅助界面主要是欢迎界面TXZWelcomeView类.菜单界面TXZMenuView类.设置界面TXZSetView类.帮助界面TXZHelpView类.选关界面TXZSelectView类,以及关于界面TXTAboutView类,下面就对这些类的开发进行详细介绍. 6.5.1 欢迎界面类TXZWelcomeView 欢迎界面是进入游戏的

《Android 3D 游戏案例开发大全》——6.7节相关工具类

6.7 相关工具类Android 3D 游戏案例开发大全为了实现程序中的功能,需要很多工具辅助方法,在开发时将相关的方法组织到一起就构成了一个个的工具类.工具类自己并不能实现什么具体的效果,但它是程序后台的支撑. 6.7.1 箱子排序类CompareDis本小节为读者介绍的是箱子排序类,该类通过比较箱子与摄像机之间距离来确定箱子的绘制顺序,其代码如下. 1 package com.bn.txz.manager; //声明包 2 public class CompareDis implements

《Android 3D 游戏案例开发大全》——6.1节游戏背景及功能概述

6.1 游戏背景及功能概述Android 3D 游戏案例开发大全本节将对3D游戏开发进行简单介绍,通过本节的学习,读者可以对3D版推箱子游戏有初步的认识,并了解本章开发案例的游戏效果及具体功能. 6.1.1 游戏背景概述推箱子是一款来自日本的古老游戏,目的是训练逻辑思考能力.要求在一个狭小的空间内把木箱放在指定的位置,稍有不小心就会出现箱子无法移动或者通道被堵的情况. 推箱子游戏是一款老少皆宜的益智类游戏,虽然游戏画面与玩法简单,但趣味无穷. 6.1.2 游戏功能简介介绍详细的开发步骤之前,首先