从继承CCSprite的类中创建一个sprite
Create a sprite from a class that inherits CCSprite
我有一个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;
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 运行同一解决方案的另一个项目的项目
- 挂起和取消挂起一个文件DLL
- 用C++中的一个变量定义一个常量
- 函数向量_指针有不同的原型,我可以构建一个吗
- 在c++中用vector填充一个简单的动态数组
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 预处理器:插入结构名称中的前一个行号
- 我在c++代码中生成了一个运行时#3异常
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 从链接列表c++中删除一个项目
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '