【GamePlay3D】开发——范例解读之MeshGame

在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;
    };
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值