我有一个Balloon
类(请参见this),它继承自CCSprite
。我给了它类似balloonSpeed
和balloonStrength
的属性。不过,我似乎有问题。
我想做的是,当我创建Balloon
类的实例时,我希望它执行以下操作:
- 给它一个纹理(气球的PNG文件)
- 设置
balloonSpeed
和balloonStrength
等属性 - 添加动作使其移动并接受触摸输入
当物体被触摸时,我想:
- 如果抽头数=
balloonStrength
,则计数。如果是,摧毁气球
我做了一个更简单的版本,其中Balloon
对象在被触摸时会被破坏。我想在这里应用OOP和自定义类,但我似乎无法找到正确的方法
提前谢谢。
则h文件应如下所示:
#include "cocos2d.h"
using namespace cocos2d;
class Balloon : public cocos2d::CCSprite, public CCTargetedTouchDelegate {
public:
float balloonSpeed;
int balloonStrength;
int numberOfTaps;
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);
};
并且在您的触摸方法中:
bool Balloon::ccTouchBegan(CCTouch* touch, CCEvent* event){
CCPoint touchLocation = this->getParent()->convertTouchToNodeSpace(touch);
if (CCRect::CCRectContainsPoint(this->boundingBox(), touchLocation)) {
this->numberOfTaps++;
if(this->balloonStrength == this->numberOfTaps){
this->removeFromParentAndCleanup(true);
}
}
return true;
}
您可以在添加blueBalloon作为层或节点的子级后使用它,如下所示:
blueBalloon->balloonSpeed = 2.0f;
blueBalloon->numberOfTaps = 0;
blueBalloon->balloonStrength = 5;