YamateDD

iPhone开发 web开发

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

通過上一篇, 我們已有個基本的畫圖功能, 這次讓我們弄一個簡單的遊戲框架吧!

其實一般的遊戲, 大至有兩個主要的函數就可以了: 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的參數,就是小圖在大貼圖里的起始位置和大小:

 
复制代码
  1. CCSprite(CCTexture *texture, float x, float y, float width, float height);



CCSprite 的 render 也多加了一個角度的參數,我們可以用它把角色轉來轉去了!

 
复制代码
  1. void render(float x, float y, float angle=0.0f);





因為時間關係不寫太多了,大家有興趣,可以看一下代碼作為參考。

posted on 2012-02-03 15:01  YamateDD  阅读(177)  评论(0编辑  收藏  举报