最近没有更新博客,原因之一就是在读《Pro Android Games》,其中一些样例游戏实在太有意思,忍不住又山寨一番,在Chapter3中介绍了第一个叫做Space Blaster的游戏,游戏规则蛮简单,就是你控制飞船躲过或者打击流星石。下面是一个游戏的截图:

工程总共有三个类,SpaceBlasterActivity、ArcadeGame和SpaceBlasterGame。第一个类是Android的Activity类;第二类继承了LinearLayout类,主要实现了onLayout函数(当View要为所有子对象分配大小和位置时,调用此方法),也就是说可以将游戏的初始化方法和产生周期性线程(模拟周期性的帧)放在这里。第三个SpaceBlasterGame类继承了ArcadeGame类,游戏的所有逻辑都在这里实现,例如各个Sprite之间的碰撞和显示。类的结构图如下:

接下来上一下这三个类之间的UML图吧,已经画了,不用怪可惜(⊙﹏⊙b汗):

这里不会说明所有的函数,我的代码在这里,《Pro Android Games》一书网上也有它的示例的代码。这里主要说明几点个人觉得比较重要的地方:
1、 构造方法必须有两个参数的那个,否则main.xml无法解析;
2、 Bullets和Meteors都是用数组记录信息的,一开始用ArrayList容器,游戏玩玩就会崩溃;
然后就是细节问题,这个游戏很简单,没有算法,不够建议还是自己去实现一下,在这个过程中会发现很多细节点的!
本文详细介绍了如何在Android平台上使用ProAndroidGames学习并实现一个名为SpaceBlaster的游戏。通过阅读本书,作者不仅掌握了游戏的基本框架,还深入理解了游戏逻辑的实现过程。文章特别强调了游戏中涉及到的类结构、初始化方法和产生周期性线程的重要性,同时指出在处理游戏元素如子弹和流星时,数组记录信息的方法可能导致游戏崩溃的问题。
1075

被折叠的 条评论
为什么被折叠?



