技术开发 频道

游戏是这样写成的(三)

  【IT168 技术文档】

  通过上一篇, 我们已有个基本的画图功能, 这次让我们弄一个简单的游戏框架吧!

  其实一般的游戏, 大致有两个主要的函数就可以了: update 和 render!

  我们在 update 里更新游戏数据, 然后在render 里把游戏的画面画出来。我们来定议一个叫 CCGameApp 的 class 吧:

  1. class CCGameApp
  2. {
  3. public:
  4.     CCGameApp();
  5.     ~CCGameApp();
  6.    
  7.     void update(float dt);
  8.     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/

0
相关文章