话说闲来没事玩Android的游戏吧。发现了一个问题。
在 Google 的 android-sdk-windows-1.0_r2 的sample中,有一个 LunarLander 例子。一个挺好玩的游戏,很难。但是发现一个问题就是没有介绍如何玩这个游戏。一直不知道怎么控制着陆。看了代码才知道 按住 S 是 点火firing(靠,这年月忌谈fire!)。这才能玩这个游戏。
所以产生了一个想法,在这个例子程序中添加一个Help的菜单弹出这个按键帮助。这也算是第一次接触Java和Eclipse的学习和实践吧。
1. 和VC 一样,先要创建一个Help的menu资源和字符串。
在 LunarLander.java 的 onCreateOptionsMenu(Menu menu)中添加一行。
2. 双击Eclipse->Package Explorer->LunarLander项目的res->values文件夹底下的 string.xml 中添加
"Add..."添加一个字符串用来显示菜单内容。
Name: menu_help
Value: Help.
另外需要添加一个字符串显示帮助内容。
Name: message_help_content
value: "Left Arraw Key: counter-clock rotate/nRight Arraw Key: clock rotate/nUp Arraw Key: Start/Stop/nBlank Key: firing/nS Key: restart"
3. 在LunarLander.java的 onOptionsItemSelected 函数中添加 switch 分支
4. 在LunarLander.java 中添加Help函数的实现:
这么NB的代码,不是自己写的是google出来改的。
nnd,在VC下的一个简单的MessageBox消息框,这边居然这么复杂。
用到了集合的概念(以前用Javascript的使用学过这个概念)。
5. 接下来可以进行测试了。选中项目,点Run。在模拟器上运行起来了。
模拟器上点 Menu-> More->Help。出来帮助了。
6. 小插曲,再仔细测测,你会发现一个bug,就是help对话框保持的状态下,按Home键回到主屏,然后再次进入LunarLander程序时候,系统会报错。
"Sorry! The application Lunar Lander(process com.example.android.lunarlander) has stopped unexpectedly.Please try again. Force close"如下图:
7. 如何修改呢?谁知道告诉我一声。