【问题标题】:Cocos2d-x runAction ErrorCocos2d-x runAction 错误
【发布时间】:2014-02-10 19:30:50
【问题描述】:

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

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(down) 上引发错误;线。 当我执行变量 cat 时,看起来我无法获取位置参数。它是内存读取错误..

【问题讨论】:

    标签: c++ action cocos2d-x


    【解决方案1】:

    在 cocos2dx 3.0 中 您可以直接在运行中为任何精灵编写。

    spriteName->runAction(Sequence::create(MoveBy::create(1.0f,Point(398,565)),NULL));

    【讨论】:

    • 请添加一些解释。解释为什么你的代码应该工作。
    【解决方案2】:

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

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

    收件人:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-17
      相关资源
      最近更新 更多