好的,所以我希望我的猫精灵在点击两个(向上和向下)按钮上下移动。 我是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时,看起来我无法获得位置参数。它是一个内存读取错误..
答案 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));