Cocos2d-x runAction错误

时间:2014-02-10 19:30:51

标签: c++ action cocos2d-x

好的,所以我希望我的猫精灵在点击两个(向上和向下)按钮上下移动。 我是cocos2d-x的初学者。 所以,在mygame.h中,我有一个sprite cat的全局声明:

cocos2d :: Sprite * cat;

在一个功能中,我创建一个新场景并在其中添加一个猫。

    cat = Sprite::create("cat.png");
cat->setScale(0.2);
cat->setPosition(0, 190);//(Director::getInstance()->getVisibleOrigin().x + 50,       Director::getInstance()->getVisibleSize().height / 2);
layer->addChild(cat);
playscene->addChild(cat);

在另一个函数(按钮回调)中,我有这个代码:

    void HelloWorld::down(Object* pSender){
CCActionInterval* down = CCMoveBy::create(1.0f, Point(0.0, -20.0));
cat->runAction(down);
}

一切都很好,直到我按下向上或向下按钮。 它会在cat-> runAction(向下)上抛出错误;线。 当我执行变量cat时,看起来我无法获得位置参数。它是一个内存读取错误..

2 个答案:

答案 0 :(得分:1)

在cocos2dx 3.0中 你可以直接在runaction中为任何精灵写。

spriteName-> runAction(序列::创建(MoveBy ::创建(1.0F,点(398565)),NULL));

答案 1 :(得分:0)

看起来你正在将Cocos2D-X 2.x API与Cocos2D-X 3.0混合使用。我正在暗中猜测并说它看起来像你正在尝试使用3.0。您需要更改以下行:

CCActionInterval* down = CCMoveBy::create(1.0f, Point(0.0, -20.0));

要:

ActionInterval* down = MoveBy::create(1.0f, Point(0.0, -20.0));