gpt4 book ai didi

c++ - 从继承 CCSprite 的类创建 Sprite

转载 作者:行者123 更新时间:2023-11-28 07:59:53 25 4
gpt4 key购买 nike

我有一个继承自 CCSpriteBalloon 类(参见 this )。我已经为它指定了 balloonSpeedballoonStrength 等属性。不过,我似乎遇到了问题。

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

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

当物体被触摸时,我想:

  • 如果 # of taps = balloonStrength 则计数。如果是,则销毁 Balloon。

我做了一个更简单的版本,其中一个 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;

关于c++ - 从继承 CCSprite 的类创建 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11771403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com