使用cocos2d 2.0.4在c ++中使用鼠标拖放时可以帮助我更换sprite的位置。
CCSprite *splash=CCSprite::create("Level3.png");
splash->setPosition((200,500));
this->addChild(splash,1);
CCSprite *splash1=CCSprite::create("Level2.png");
splash1->setPosition((300,500));
this->addChild(splash,1);
CCSprite *splash=CCSprite::create("Level3.png");
splash->setPosition((200,500));
this->addChild(splash,1);
CCSprite *splash1=CCSprite::create("Level2.png");
splash1->setPosition((300,500));
this->addChild(splash,1);
使用鼠标拖放操作
进行交换答案 0 :(得分:0)
我想你知道处理接触。要交换,请按照以下步骤操作。
答案 1 :(得分:0)
对于Cocos2d-x v 2.0.4,不建议(由于速度问题)在每个cocos2d::CCSprite*
上创建事件。
一种解决方案是将cocos2d::CCSprites*
存储在std::vector<cocos2d::CCSprite*>
中,让cocos2d::Layer
响应触摸事件。当cocos2d::Layer*
收到并发送事件时,循环浏览std::vector<cocos2d::CCSprite*>
并查看哪个cocos2d::CCSprite*
包含触摸,然后对其进行操作。 (检查边界框)。
您可以通过继承cocos2d::Layer*
和public cocos2d::CCLayer
以及覆盖以下几个功能来为cocos2d::CCTargetedTouchDelegate
添加触摸功能:
#include "cocos2d.h"
using namespace cocos2d;
class MyLayer : public cocos2d::CCLayer, public cocos2d::CCTargetedTouchDelegate
{
public:
virtual void onEnter();
virtual void onExit();
virtual bool ccTouchBegan(CCTouch* touch, CCEvent* event);
virtual void ccTouchMoved(CCTouch* touch, CCEvent* event);
virtual void ccTouchEnded(CCTouch* touch, CCEvent* event);
};