0

Balloon我有一个继承CCSprite. 我给了它像balloonSpeed和这样的属性balloonStrength。不过,我似乎遇到了问题。

我想要做的是,当我创建Balloon类的实例时,我希望它执行以下操作:

  • 给它一个纹理(一个气球的PNG文件)。
  • 设置属性,如balloonSpeedballoonStrength
  • 添加动作以使其移动并接受触摸输入。

当物体被触摸时,我想:

  • 如果抽头数 = ,则计数balloonStrength。如果是这样,摧毁气球。

我已经做了一个更简单的版本,其中一个Balloon对象在被触摸时被破坏。我想在这里应用 OOP 和自定义类,但我似乎无法找到正确的方法。

提前致谢。

4

1 回答 1

1

那么 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;
于 2012-08-02T23:15:36.053 回答