一个android游戏框架
2014-02-16 17:42
239 查看
1. 继承SurfaceView类, 实现Runnable和Callback(针对SurfaceHolder)接口
继承自SurfaceView, 并实现runnable interface, 在surfaceCreated()内new thread()(以this为参数)并初始化各种参数(因为此处才可以获得屏幕尺寸)
资源加载可以放在类初始化函数中
2. 绘图
SurfaceView虽然从View继承得到一个draw(Canvas)函数, 但不会自动调用它, 一般的对策是: 自己
实现一个绘制函数, 在需要的时候调用它. 三个需要绘制的地方
a) surfaceCreated()内
b) 响应输入后
c) Run()内
绘制函数内通过SurfaceView::SurfaceHolder::lockCanvas()获得canvas, 绘制完毕后记得unlockCanvas()
3. 响应输入
重载继承自View的相关输入函数即可, 比如onTouchEvent()
4. Run()函数: 独立的现成
Run内主要做三件事
a) 绘制: 调用绘制函数完成
b) 游戏逻辑: 各种后台计算(注意这里似乎不是多线程, 所以逻辑不要太复杂)
c) 帧率控制: 上述两步执行完后, 如果耗时是t, 而期望的帧率是F, 如果t > 1/F则不用控制帧率, 否则调用sleep()函数等待一段时间1/F - t 保证每一轮Run()的执行时间近似等于1/F
PS: android设计中对多线程有一个限制: UI必须在UI线程中处理, 而不能在子线程中处理
继承自SurfaceView, 并实现runnable interface, 在surfaceCreated()内new thread()(以this为参数)并初始化各种参数(因为此处才可以获得屏幕尺寸)
资源加载可以放在类初始化函数中
2. 绘图
SurfaceView虽然从View继承得到一个draw(Canvas)函数, 但不会自动调用它, 一般的对策是: 自己
实现一个绘制函数, 在需要的时候调用它. 三个需要绘制的地方
a) surfaceCreated()内
b) 响应输入后
c) Run()内
绘制函数内通过SurfaceView::SurfaceHolder::lockCanvas()获得canvas, 绘制完毕后记得unlockCanvas()
3. 响应输入
重载继承自View的相关输入函数即可, 比如onTouchEvent()
4. Run()函数: 独立的现成
Run内主要做三件事
a) 绘制: 调用绘制函数完成
b) 游戏逻辑: 各种后台计算(注意这里似乎不是多线程, 所以逻辑不要太复杂)
c) 帧率控制: 上述两步执行完后, 如果耗时是t, 而期望的帧率是F, 如果t > 1/F则不用控制帧率, 否则调用sleep()函数等待一段时间1/F - t 保证每一轮Run()的执行时间近似等于1/F
PS: android设计中对多线程有一个限制: UI必须在UI线程中处理, 而不能在子线程中处理
相关文章推荐
- 【Android游戏开发之四】Android 游戏框架(一个游戏角色在屏幕行走的demo)
- 【Android游戏开发之四】Android 游戏框架(一个游戏角色在屏幕行走的demo)
- 【Android游戏开发之四】基础的Android 游戏框架(一个游戏角色在屏幕行走的demo)
- 【Android游戏开发之四】Android 游戏框架(一个游戏角色在屏幕行走的demo)
- 用lGame(3.0)框架在android平台上开发一个经典游戏Tetris (将会有LGame与Android的对比呦)第一篇
- 【Android游戏开发之四】Android 游戏框架(一个游戏角色在屏幕行走的demo)
- 用lGame(3.0)框架在android平台上开发一个经典游戏Tetris (将会有LGame与Android的对比呦)第二篇
- 【Android游戏开发之四】Android 游戏框架(一个游戏角色在屏幕行走的demo)
- 分享一个android真正实用的游戏框架
- [转]Android 游戏框架(一个游戏角色在屏幕行走的demo)
- Android 游戏框架(一个游戏角色在屏幕行走的demo)
- 【Android游戏开发之四】基础的Android 游戏框架(一个游戏角色在屏幕行走的demo)
- (转)【Android游戏开发之四】Android 游戏框架(一个游戏角色在屏幕行走的demo)
- 【Android游戏开发之四】Android 游戏框架(一个游戏角色在屏幕行走的demo)
- 一个简单的游戏服务器框架
- Java游戏开发框架LGame-0.2.8版发布(含JavaSE及Android版,已有文档)
- 【Android进阶】如何写一个很屌的动画(1)---先实现一个简易的自定义动画框架
- 【Android 2d游戏开发(3)】——贪吃蛇(基于surfaceview框架,精讲)
- Android游戏开发:游戏框架的搭建(1)
- Android 框架设计Demo,一个简单的MVP示例搜索功能,网络请求用Retrofit+RxJava实现