您的位置:首页 > 移动开发 > Android开发

Android游戏开发 study 1

2014-03-07 17:06 141 查看
今天开始看第一章, 【Android游戏开发之一】设置全屏以及绘画简单的图形。有如下问题。

问题1,关于全屏。 Android 4.0之后,在有虚拟按键的机器上,全屏变成了一件奢侈的事情。除非机器固件有做修改支援全屏,想实现全屏真的不是一件容易的事情。虽然Android 4.1及之后的SDK可以隐藏掉虚拟按键让Activity变成全屏, 但是只要有触碰屏幕的事件,虚拟按键会立刻显示出来。这种情况估计是Android本身的设计,不过也有可能有方法能让游戏一直全屏,有机会再研究。不能隐藏虚拟按键也不影响游戏。
先加到TODO-LIST-GAME。

问题2,有Warning。Himi的代码中有在onDraw(Canvas canvas)做如一些定义,比如:Rect rect = new Rect(30,30,50,50); Eclipse有报Warning,
查了一下原因。Warning说不要在onDraw中进行内存分配,java的垃圾回收机制会影响到画面流畅度。最好是在之前定义好一些对象,比如rect, 然后在每一次onDraw中重用。 既然会影响到流畅度,那就按Warning提示来。

但是后面有衍生了一个新问题。我先定义了一个rect = new Rect(300,300,500,500),然后在onDraw里面画出来,然后再rect.set(60,
60, 200, 200), 再画。按照我的理解,rect其实已经变化,(300, 300, 500, 500)这个只会在程序最开始闪一下,后面就不会出现。但是程序实际运行时,效果有时和我想的一样,有时(300, 300, 500, 500)却不会消失,直到我用手触碰了屏幕。 纠结~~~  我开始怀疑是因为我在Activity中加了全屏的测试代码导致的,于是把它拿掉。完了之后一试,我就更纠结了——(300, 300, 500, 500)这个区域一直都不消失,手碰屏幕之后也不会。 想了想,之前有全屏的测试代码,手触碰后虚拟按键会出来,屏幕有刷新,所以(300,
300, 500, 500)消失,后面拿掉之后,没刷新,所以没有变化。看来需要研究下onDraw的机制了,也回到TODO-LIST-GAME中。 (问题2有点哆嗦...)。

问题3,分辨率。Himi的代码在我手机上(Nexus 4, 分辨率是1280*768)跑起来后,图形和字都小的很。如果改大点,在别的机器上的显示效果也不能保证。所以多分辨率的支持也是需要研究的。加到TODO-LIST-GAME中...

这才刚开始,就一堆大问题。先再看下基本的知识,等稍微深入点再研究吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: