安卓第五课:游戏得分(内容提纲)

来源:互联网 发布:windows程序设计如何 编辑:程序博客网 时间:2024/06/02 05:30

        这里先简单的列举下用到的知识提纲。我们直接加载第八章的CODE。

        要统计游戏得分,首先要找到得分点。这里的得分点就是主角飞机的子弹与敌机(三种类型)进行碰撞,所以我们需要在渲染器(Renderer)中找碰撞检测函数。

        在碰撞函数中,我们需要找到确认碰撞发生的代码片段,然后根据不同的敌机类型累加不同的游戏得分。

        然后因为这个游戏得分是需要在整个游戏过程中保存并修改的,所以一般我们建议放在游戏引擎类(SFEngine)中。这样我们就有了一个全局的变量用来保存游戏得分,得分的累加是在碰撞检测成功是进行(或者说我们在敌机消亡的过程中累加)。

        分数有了,那么我们需要显示出来。

        和前面的倒计时内容类似,我们需要在游戏界面添加一个新的TextView,但是因为新加的TextView需要放在原TextView的右侧,所以这个过程还是要经过一定的调试的。如果我们继续使用RelativeLayout,那么我们需要使用一个LayoutParams参数和addRule方法,或者我们将RelativeLayout修改为LinearLayout 。

        界面有了,分数有了,那把两个合起来就是一个主要问题了。因为界面是在主线程中产生的,而分数是在渲染器线程中产生的,如果直接在渲染器中使用该TextView要么是报找不到,要么就是说只能在创建控件的线程中使用它。这个是大问题。

        找啊找,找到了一个博文:http://jinguo.iteye.com/blog/660073

        原理就是在主线程中创建一个句柄,然后监听线程消息,当子线程中提交消息的时候就响应,并修改UI界面。

        这个游戏得分的实现重点就是线程间的通信操作……其他的界面、得分修改起来还是比较方便的。

0 0