我在南京的一所高校学习软件工程。学院里每年会举行一次“创新杯”软件比赛,鼓励同学自主学习和创新。我和几个好兄弟自组“铁男组”参加。经过几个晚上的商量,兄弟们决定在Android上开发游戏。暑假了,兄弟们回家的回家,留校做项目的做项目。而我决定留校自学Android,算是为新学期大家的共同开发铺路吧。
我时用Eclipse开发的,在模拟器上运行。模拟器的配置如下。大家注意下Skin选项中Built-in必须是“WQVGA400”(这是我游戏的一个缺陷)。
下面是Eclipse截图,我简要说明下各个类的作用
那么整个游戏是如何跑起来,所有的对象(图片)如何动起来的呢?
相信有过一些有小游戏开发经验的人知道,在整个系统中,除了主线程外,会启动另外一个线程,这个线程负责不断刷新所有对象的状态,更新图片,从而达到动画的效果。
我也是这样做的。在GameSurfaceView中我有个内部类,RefurbishThread,它负责每100毫秒调用GameSurfaceView.update_all_components()方法更新所有rabit,bell,bird,background状态,然后重绘屏幕。
个人觉得Rabit,Bell等对象状态的定义是个需要花脑筋的地方,我做得还不够好,下面是定义Rabit的一些状态:
privateintface_state;privateintground_state;privateintair_state;//rabit面左面右状态publicstaticfinalintRABIT_FACE_LEFT=1;publicstaticfinalintRABIT_FACE_RIGHT=2;//rabit在地面状态publicstaticfinalintRABIT_NOT_ON_GROUND=0;publicstaticfinalintRABIT_LEFT_STOP=1;publicstaticfinalintRABIT_RIGHT_STOP=2;publicstaticfinalintRABIT_LEFT_MOVE1_ON_GROUND=3;publicstaticfinalintRABIT_LEFT_MOVE2_ON_GROUND=4;publicstaticfinalintRABIT_RIGHT_MOVE1_ON_GROUND=5;publicstaticfinalintRABIT_RIGHT_MOVE2_ON_GROUND=6;//rabit在空中的状态publicstaticfinalintRABIT_ON_AIR_UP0=0;publicstaticfinalintRABIT_ON_AIR_UP1=1;publicstaticfinalintRABIT_ON_AIR_UP2=2;publicstaticfinalintRABIT_ON_AIR_UP3=3;publicstaticfinalintRABIT_ON_AIR_UP4=4;publicstaticfinalintRABIT_ON_AIR_UP5=5;publicstaticfinalintRABIT_ON_AIR_STOP=6;publicstaticfinalintRABIT_ON_AIR_DOWN=7;
下面是一些开发中遇到技术层面小知识,希望对大家有帮助:
1.如何将游戏画面保持横向显示,不会因为手机横竖而自动切换显示方式:在activity标签里面加上这两个属性的配置就可android:screenOrientation="landscape"android:configChanges="orientation|keyboardHidden|navigation"
3.java线程的基础知识
4.Handler的使用
1.不知正规的Android游戏开发是如何进行的,应该不是像我这样贴图这样简单吧,用游戏引擎吗?什么引擎?网上的资料感觉太少了,希望google能够多提供这方面的帮助。不知列位看官是否知道真正手机游戏如何开发的,指点一二,不胜感激。
2.体系结构做的不好,类与类之间的耦合度高的吓人。上学期虽然上了设计模式这门课,可能是学艺不精吧,这个小游戏没用什么模式。窃以为,是不是对于小的项目,设计模式用场不是很大?或许小的项目有很大的耦合是正常的,它没有必要分很多模块然后分别进行设计设计模式可能对大的项目很有用吧,大的项目也需要设计模式。不知我的想法对不对,希望有牛人指点。
关于Android开发平台的体会:
我有种粗浅的感觉,在Android平台上开发与平常Java开发差别不是很大。处理配置文件外,程序的大部分代码都是用Java写的。如果你学过Java,有一点Java开发的经验,Android入门还是挺快的。看看书,到网上查查资料,熟悉一些基本机制,如Activity,了解一些API,再动手试试,上手挺容易。当然,无知者无畏,想必Android一些深层的机制不是那么简单,还有许多Android上的概念定义我没掌握,须认真学习体会。我想说的是做个Android菜鸟不那么困难,所以若对Android开发有兴趣,那就行动吧~
所谓坚持:
坚持不是件容易的事。
暑假留校学习Android,开始时热情很高,看书看视频感觉挺好,自己每天都有收获,很幸福。
真正做其开发时,遇到了不少困难。主要是游戏整体和细节设计,类似游戏的参考很少,有很多Class定义需要左思右想抓耳挠腮,没有同学可以共同探讨,自己感觉又解决不了,很痛苦!很茫然!很失落!于是想要放弃,反正自己做的这件事又没有什么硬性要求,何必自己难为自己呢?
平时我总是轻视书上鼓吹坚忍不拔之人,觉得他们没什么了不起,不就是坚持嘛,很有可能是后人杜撰的。可现在,反身看看我自己,如果放弃的话,还有什么资格瞧不起别人?于是在这种心理下,硬着头皮继续学习。呵呵,当然,我也狠狠地放纵自己,努力玩,然后学习开发。
总之,我可以说虽然做这个小东西对别人来说很容易,你也许会轻视我,但我不管,我挺了下来,现在心情还不错。