【GamePlay3D】開發——範例解讀之MeshGame

來源:互聯網
上載者:User

在GamePlay3D中,開發人員添加代碼的地方,主要是擴充Game類,寫一個繼承自Game的類,然後實現基本的方法:

    void initialize();//初始化的時候載入字型、情境之類的東西。

    void finalize();//程式退出的時候釋放資源儲存設定之類的。

    void update(float elapsedTime);//我的理解是重新整理幀,每幀進入一次。

    void render(float elapsedTime);//這個沒怎麼理解和update的區別和聯絡,可能是update是處理,然後render渲染顯示,一家之言。

載入字型就是:

Font *_font = Font::create("res/arial40.gpb");

載入情境就是:

Bundle* bundle = Bundle::create("res/duck.gpb");
_scene = bundle->loadScene();
SAFE_RELEASE(bundle);

擷取節點:

Node* _modelNode = _scene->findNode("duck");

當然還有些方法是需要實現的,比如事件處理函數:

下面是事件處理,都比較容易理解:

void MeshGame::keyEvent(Keyboard::KeyEvent evt, int key)
{
    if (evt == Keyboard::KEY_PRESS)
    {
        switch (key)
        {
        case Keyboard::KEY_ESCAPE:
            exit();
            break;
        }
    }
}

void MeshGame::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex)
{
    switch (evt)
    {
    case Touch::TOUCH_PRESS://相當於cocos2dx中的touchbegin,開始觸摸
        {
            _touched = true;
            _touchX = x;
        }
        break;
    case Touch::TOUCH_RELEASE://相當於touchend,觸摸結束
        {
            _touched = false;
            _touchX = 0;
        }
        break;
    case Touch::TOUCH_MOVE://相當於touchmove,觸摸移動
        {
            int deltaX = x - _touchX;
            _touchX = x;
            _modelNode->rotateY(MATH_DEG_TO_RAD(deltaX * 0.5f));
        }
        break;
    default:
        break;
    };
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.