【IT168 技术文档】


通过上一篇, 我们已有个基本的画图功能, 这次让我们弄一个简单的游戏框架吧!
其实一般的游戏, 大致有两个主要的函数就可以了: update 和 render!
我们在 update 里更新游戏数据, 然后在render 里把游戏的画面画出来。我们来定议一个叫 CCGameApp 的 class 吧:
- class CCGameApp
- {
- public:
- CCGameApp();
- ~CCGameApp();
- void update(float dt);
- void render();
大家看到我们的 update 函数, 有一个 dt 参数, 在这里我略微解说一下: 游戏的更新率, 最理想是我们把它设成固定的,比如每秒60帧,但有时可能某些原因,游戏没法达到这个更新率,那怎么办呢?总不能让角色忽快忽慢的移动吧!而这个 dt 参数是从上一帧到现在这帧,共用去了多少时间(秒),我们可以利用它调整游戏里的数据,比如说,主角一秒移动1个像素,现在过了dt 这么多秒,那主角应该移动 (1*dt) 个像素了!
这次,我们也把 CCSprite 一分为二,弄多了一个 CCTexture,目的是让不同的 CCSprite 可以共享一个贴图,一般来说,为了节省空间和速度考虑,我们会把数个小图,放在一个大的贴图里,像上面第一个图,里面就有两个角色的图,那我们建立两个不同的sprites时,可以用同一个贴图!
而建立 CCSprite的参数,就是小图在大贴图里的起始位置和大小:
CCSprite(CCTexture *texture, float x, float y, float width, float height);
CCSprite 的 render 也多加了一个角度的参数,我们可以用它把角色转来转去了!
void render(float x, float y, float angle=0.0f);
本篇文章的代码iDemo_3下载:http://www.rayfile.com/files/e6dda3eb-3bee-11de-aef2-0019d11a795f/