2014-02-10 22 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