本文章属于原创性文章,珍惜他人劳动成果,转载请注明出处:http://www.pm-road.com/index.php/2014/11/05/151/
前言:最近闲来无事,而且也是因为刚接触安卓不久,所以萌生了以后在开发web 项目的过程中同样开发安卓手游,因前一段时间项目需要独立完成了一款功能型手机app ,该App比较简单,全是按钮操作,也就是Activity之间的相互传值与过渡,所以对安卓的基本知识有了一定了解,在我的印象当中,感觉安卓手游是比 较困难的,但是有困难就要克服,所以有了开发游戏的念头。
经过两天在网上对游戏的资料翻阅,总结起来开发游戏很简单:无非就是通过surfaceView 、Thread、Runnable来对主UI进行更新操作而已,呵呵,说一句真简单,其实做起来工作量挺大的,接下来,就一天一点代码把这个小游戏完成。
首先,先把这个小游戏的功能放一边,因为主要功能就是玩家控制一架飞机,在躲避上方飞机的同时其全部打掉……
接下来,就是围绕这个功能说一下思路(我在纸上把思路画了一下,看下面的图,然后在解释思路的原因):
因为安卓(java)本身这种开发语言就是面向对象的,所以游戏中的任何东西我们都应该当做一个对象处理,通过该图可以很明显知道开发的思路,具体思路如下:
一:飞机就是一个对象,飞机又包括你控制的飞机、敌机;飞机的属性包括:生命,所在X坐标、Y坐标,图像,但是在安卓开发过程中,会发现所有的东西 都应该有X和Y 坐标(比如说:飞机,子弹,障碍物等等),所以应该有一个Root对象,该Root对象只有两个属性,就是X\Y
然后,还有一个飞机对象,该对象继承Root对象,然后属性包括生命,是否发射子弹等属性;
二:每一架飞机在飞行过程中,会发射子弹,所以每一架飞机应该对应着一个发射子弹的线程;
三:因为当飞机把子弹发射之后,子弹是独立存在的,所以子弹也是一个对象,继承Root对象,然后自己的属性包括:是否碰撞,所以要新建一个子弹对象;
四:子弹不会跟着飞机到处跑,而是子弹会在发射过后,沿着直线飞行;所以每一个子弹对应一个单独的线程;所以也要新建一个子弹线程;
五:子弹也会有各种样式,比如说:散弹、机光炮等等;
六:因为子弹飞行过程中,以及飞机飞行过程中都会碰到障碍物,所以在碰撞的一瞬间应该会有一个线程释放出碰撞效果;
七:在飞机飞行过程,会随机出现一个能量球(加血、子弹类型),而此随机应该是一个随机数,而且也应该是一个线程;
经过以上七大步骤,就可以把大概的框架搭建起来,至于功能方面,肯定要一步一步完善。
项目结构如下:
至此,项目的大概结构完成,接下来则是一步一步进行开发工作。下一篇:http://www.pm-road.com/index.php/2014/11/06/157/
本文章属于原创性文章,珍惜他人劳动成果,转载请注明出处:http://www.pm-road.com/index.php/2014/11/05/151/