私はバルーンを使用するゲームを持っているので、あなたは十分に幸運です. 以下は私のコードです, あなたはバルーンクラスを終えることができ、CCSpriteと同じようにそれを使うことができます.
例:
Balloon* blueBalloon = Balloon::spriteWithFile("balloon_blue.png");
this->addChild(blueBalloon);
h ファイル:
#include "cocos2d.h"
using namespace cocos2d;
class Balloon : public cocos2d::CCSprite, public 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);
};
cpp ファイル:
void Balloon::onEnter(){
CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this, 0, true);
CCSprite::onEnter();
}
void Balloon::onExit(){
CCTouchDispatcher::sharedDispatcher()->removeDelegate(this);
CCSprite::onExit();
}
void Balloon::ccTouchMoved(CCTouch* touch, CCEvent* event){
//do what you want
}
void Balloon::ccTouchEnded(CCTouch* touch, CCEvent* event){
//do your job here
}
bool Balloon::ccTouchBegan(CCTouch* touch, CCEvent* event){
CCPoint touchLocation = this->getParent()->convertTouchToNodeSpace(touch);
if (CCRect::CCRectContainsPoint(this->boundingBox(), touchLocation)) {
this->playBalloonSound();
this->removeFromParentAndCleanup(true);
}
return true;
}
または、この投稿cocos2d subclassing sprite to handle touch?の私のコードを参照できますか?