《Beginning Android Games》Chapter3给出的基本框架
一个游戏的基础框架大致分为这几个部分:
1 Window management
2 Input
3 File I/O
4 Graphics
5 Audio
6 Game framework
?
之后书中给出了具体每一部分接口的定义,如下:
Input接口
?
public abstract class Screen {protected final Game game;public Screen(Game game){this.game=game;}//更新状态public abstract void update(float deltaTime);//刷新画面public abstract void present(float deltaTime);public abstract void pause();public abstract void resume();public abstract void dispose();}?
以上就基本实现了最简单的框架 觉得还是比较清晰的 所以照搬记录一下
?
最后Chapter3还提到了Frame Rate–Independent Movement 也就是固定帧数的问题?
例如若每次循环移动1个像素点 在60FPS的情况下 1秒就移动了60个像素 而30FPS则移动了30个像素 这样移动的速度相当于提升了2倍 作者给出的解决方案是根据deltaTime 计算应该移动的实际距离 也就是从x+=1 改成x+=30*deltaTime 30是希望的每秒移动像素值
?————————————题外话——————————
再想到之前看到的一个介绍 游戏基本是一个循环 : ?更新状态——重新绘制——休眠——更新状态
而其中的休眠时间并不是一个固定值 而是动态计算的 休眠长度=理想值-处理用去的时间 其实也跟上面的思路类似
?