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中...
这才刚开始,就一堆大问题。先再看下基本的知识,等稍微深入点再研究吧。
问题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中...
这才刚开始,就一堆大问题。先再看下基本的知识,等稍微深入点再研究吧。
相关文章推荐
- Android游戏开发 study 2-3
- Android游戏开发 study 4-5
- Android游戏开发 study 6-7
- Android游戏开发 study 8-10
- Android网络游戏之神农诀项目开发--视频观看地址
- Android游戏开发之游戏框架的搭建
- Android游戏开发之构建游戏框架View与SurFaceView的区别(十)
- Android游戏开发之旅(三)View类详解
- Android游戏开发之旅(十八) SoundPool类
- android游戏开发
- Android基于box2d开发弹弓类游戏[一]-------------前期准备&创建项目
- 我是如何从0开始,在23天里完成一款Android游戏开发的 – Part 1 – 开篇与前2天
- Android游戏开发---抗锯齿设置
- 【iOS-cocos2d-X 游戏开发之七】整合Cocos2dX的Android项目到Xcode项目中,Android导入打包运行即可!
- Android 游戏开发之MediaPlayer、SoundPool以及AudioManager
- unity开发Android游戏环境配置、调试(真机)全过程详解
- (转)Android游戏开发新手应准备的知识和技巧
- 【Android游戏开发十四】深入Animation,在SurfaceView中照样使用Android—Tween Animation!
- Android游戏开发,宠物小精灵连连看
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!