图片:
图片:
通過上一篇, 我們已有個基本的畫圖功能, 這次讓我們弄一個簡單的遊戲框架吧!
其實一般的遊戲, 大至有兩個主要的函數就可以了: update 和 render! (game_run() 或 game_paint() )
我們在 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);
因為時間關係不寫太多了,大家有興趣,可以看一下代碼作為參考。
附件:
(106 K) 下载次数:770
阅读(1124) | 评论(0) | 转发(1) |