在c ++中为cocos2d交换两个sprite的条件?

时间:2014-04-29 13:55:20

标签: cocos2d-x

我正在用cocos2d-x开发游戏。在那个游戏中我有两个精灵,当我一个接一个地点击一个精灵它应该交换。我不知道那个代码请帮助。我使用以下代码创建了精灵。

  CCSprite *splash=CCSprite::create("misc_textur111.jpg");

   splash->setPosition(ccp(500,300));

    this->addChild(splash,1);


CCSprite *splash1=CCSprite::create("misc_textur222.jpg");

splash1->setPosition(ccp(300,600));

this->addChild(splash,1)

现在我需要交换两个图像的位置。请帮助。

2 个答案:

答案 0 :(得分:0)

你可以这样做:

CCPoint position(splash->getPosition());
splash->setPosition(splash1->getPosition());
splash1->setPosition(position);

答案 1 :(得分:0)

如果可以的话,我建议升级到更新版的Cocos2d-x。版本2.23甚至更好,版本3.v.使用新EventDispatcher拖动精灵是微不足道的。您可以为每个精灵创建Listener

示例:

//Create a "one by one" touch event listener (processes one touch at a time)
auto listener1 = EventListenerTouchOneByOne::create();
// When "swallow touches" is true, then returning 'true' from the onTouchBegan method will "swallow" the touch event, preventing other listeners from using it.
listener1->setSwallowTouches(true);

//Trigger when moving touch
listener1->onTouchMoved = [](Touch* touch, Event* event){
    auto target = static_cast<Sprite*>(event->getCurrentTarget());
    //Move the position of current button sprite
    target->setPosition(target->getPosition() + touch->getDelta());
};

查看Cocos2d-x Wiki:http://cocos2d-x.org/wiki