2014-02-10 23 views
1

好吧,所以我想让我的猫精灵上下移动onClick(UP和DOWN)按钮。 我是cocos2d-x的初学者。 所以,在mygame.h中我有一个全球性的精灵猫声明:Cocos2d-x runAction错误

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(向下)上抛出一个错误;线。 当我发现变量猫,它看起来像我不能到位置参数。它的内存读取错误..

回答

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));

1

在cocos2dx 3.0 您可以在runaction直接写任何精灵。 (Sequence :: create(MoveBy :: create(1.0f,Point(398,565)),NULL));}}

+0

请添加一些解释。解释为什么你的代码应该工作。 – Nilambar