android开发架构图
Android手机上的游戏架构 |
在上面的架构中,您可以看到Android操作系统在Phone上运行,并在此之上运行所有功能。
在我们的案例中,输入是触摸屏,但如果手机配备了麦克风,摄像头,加速度计甚至是GPS接收器(如果配备),它也可以是物理键盘。 当通过上一篇文章的“活动”中使用的“视图”触摸屏幕时,框架公开事件。
用户输入
在我们的游戏中,这是通过触摸两个定义的控制区域之一中的屏幕生成的事件。 (请参阅第1步 -彩色圆圈)。 我们的游戏引擎监视onTouch事件,每次触摸时我们都会记录坐标。 如果坐标在屏幕上定义的控制区域内,我们将指示游戏引擎采取措施。 例如,如果在指定移动我们的家伙的圆圈中发生触摸,则引擎将得到通知,并指示我们的家伙移动。 如果触摸了武器控制圈,将指示装备好的武器发射子弹。 所有这些转化为改变受我们的手势(即输入)影响的演员状态。
我刚刚描述了下面的游戏逻辑部分。
游戏逻辑
游戏逻辑模块负责更改游戏中参与者的状态。 演员是指具有状态的每个对象。 我们的英雄,机器人,地形,子弹,激光束等。例如,我们触摸图中的英雄控制区域的上半部分,这转化为:根据我们的运动控制器的位置计算家伙的运动速度(我们的手指)。
在上方的图像中,浅绿色的圆圈代表我们的手指触摸控制区域。 用户输入模块通知游戏引擎(游戏逻辑),并提供坐标。 dx和dy是相对于控制器圆心的距离(以像素为单位)。 游戏引擎会计算必须为我们的英雄设定的新速度以及他将要移动的方向。 如果dx为正,则表示他将向右移动;如果dy为正,则他还将向上移动。
音讯
考虑到当前状态,此模块将产生声音。 由于几乎每个演员/对象都会以不同的状态发出声音,并且由于我们将运行游戏的设备仅限于几个通道(这意味着该设备一次可以播放多少个声音),因此必须决定哪个听起来很有趣。 例如,当我们想引起注意时,将会听到对我们的英雄构成最大威胁的机器人,当然,我们还需要为我们的武器的超棒射击声保留一个通道,因为聆听爆炸声时非常有趣。 简而言之,这就是音频。
图形
这是负责将游戏状态呈现到显示器上的模块。 这可以简单到直接在从视图获得的画布上进行绘制,或者将一个单独的图形缓冲区绘制到然后传递到可以是自定义视图或OpenGL视图的视图中。
我们以每秒帧数表示的FPS测量渲染。 如果我们有30FPS,则意味着我们每秒显示30张图像。 对于30 FPS的移动设备来说,这一点很棒,因此我们将为此目标。 稍后再详细介绍。
现在唯一要知道的是,FPS越高,动画越平滑。 想象一下有人走了,闭上你的眼睛一秒钟。 睁开眼睛后,一秒钟后您会看到该人处于该位置。 这是2FPS。 看着他们走路,但睁大眼睛,您会看到流畅的动作。 保证最低为30 FPS,但可能会更高,具体取决于您的眼睛。 如果您在原始状态下有很棒的受体,则可能是80-100甚至更多。
输出量
如果我们决定产生一些声音,则输出是声音和图像以及振动的结果。
接下来,我们将设置视图,并尝试进行第一个游戏循环,该循环将从触摸屏获取输入。 我们将拥有第一个游戏引擎。
参考: “ 对抗谷物 ”博客中我们JCG合作伙伴Tamas Jano的基本游戏体系结构 。
- Android游戏开发教程简介
- Android游戏开发–游戏创意
- Android游戏开发–创建项目
- Android游戏开发–基本游戏循环
- Android游戏开发–使用Android显示图像
- Android游戏开发–在屏幕上移动图像
- Android游戏开发–游戏循环
- Android游戏开发–测量FPS
- Android游戏开发–雪碧动画
- Android游戏开发–粒子爆炸
- Android游戏开发–设计游戏实体–策略模式
- Android游戏开发–使用位图字体
- Android游戏开发–从Canvas切换到OpenGL ES
- Android游戏开发–使用OpenGL ES显示图形元素(原语)
- Android游戏开发– OpenGL纹理映射
- Android游戏开发–设计游戏实体–状态模式
- Android游戏文章系列
翻译自: https://www.javacodegeeks.com/2011/07/android-game-development-basic-game.html
android开发架构图