我已经创建了一个精灵的否,并以相同的参考将它们添加到场景中,现在,如何使用标签删除它们
I have created a no of sprites and added them to the scene with the same reference and now, how can i remove them with out using tags?
我已经创建了一个精灵的否,并以相同名称添加到场景中。
现在,我想删除所有这些,甚至没有任何参考的所有这些。我该如何实现。
使用removeChildBytag();
或不使用标签。
void Science::onBallMovement(cocos2d::Ref* pSender){
auto sp = (Sprite*)pSender;
v1 = sp->getPosition();
if (v1 == v2) {
return;
}
if(v1!=v2) {
if (sp->getTag()==1) {
s = Sprite::create("Dot.png");
}
if (sp->getTag()==2) {
s = Sprite::create("BlueDot.png");
}
s->setPosition(v1);
s->autorelease();
this->addChild(s);
}
v2 = v1;
}
void Science::update(float delta){
if (setting) {
this->onBallMovement(spr);
this->onBallMovement(spr1);
}
}
通过覆盖节点类的更新方法,我正在反复调用上述内容,并基于我的精灵的当前位置,该位置随机移动,我正在创建一个路径跟踪器。但是现在,我想根据用户选择将其删除,我该怎么做?
有多种方法可以实现这一目标,因此我要解释最简单的方法:
初始化全局节点并删除所有孩子
在类的.h文件中声明一个节点。
Node* _spriteParent;
现在在类的初始方法中定义节点。
_spriteParent = Node::create();
_spriteParent->setPosition(Vec2::ZERO);
this->addchild(_spriteParent);
现在,每当您创建精灵时,只需将该精灵添加到 您刚刚创建的节点上方(请勿在 精灵)。
_spriteParent->addChild(s);
当您要删除已添加到_spriteparent的所有精灵时,请致电此方法:
_spriteParent->removeAllChildren();
你就完成了。希望它有帮助。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 如何在C++中从两个单独的for循环中添加两个数组
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 如何仅为一个函数添加延迟
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 使用std::transform将一个范围的元素添加到另一个范围中
- C++错误消息*成员参考.**初学者*
- 如何将更多文件夹添加到c++include路径
- 如何将元素添加到数组的线程安全函数?
- QT通过C++添加映射QML项目
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 在决定是通过参考还是通过价值时,尺寸真的是一个问题吗
- 如何使用重载的相等(==)运算符向测试用例添加描述
- 自动添加其他参考
- 使用TSHARK C 源文件时未定义的参考在添加所需库后剖析消息
- 我已经创建了一个精灵的否,并以相同的参考将它们添加到场景中,现在,如何使用标签删除它们
- 无法添加对WINRT C DLL项目的参考
- 调用函数,该函数在DLL文件上加密,并且该文件被添加为我的sloution中的参考
- 如何使用Visual Studio在.net c++项目上添加一个DLL作为参考
- 添加v6.0 c++帮助的参考