0

我需要帮助我试图删除一个不断在不同位置重生的 ccnode 并将它们添加到一个数组中以控制屏幕上的哪些精灵,但问题是我无法删除它们。它检测到触摸但没有删除任何想法?这是我用来摆脱节点的代码。

 - (void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{

CGPoint location = [touch locationInView:[touch view]];
location = [[CCDirector sharedDirector] convertToUI:location];
for (CCNode *sprite in _spritesOnScreen) {
if (CGPointEqualToPoint(sprite.position, location)) {
    [_spritesOnScreen removeObject:sprite];
    [self removeChild:sprite cleanup:YES];

}
 }
}
4

1 回答 1

0

请允许我为您提供一种稍微不同的方法。子类 CCNode 到 CCAppleNode 并在 CCAppleNode.m 文件中检测触摸并在 touchBegan 上调用 removeFromParent。这样,CCAppleNode 类负责在其被触摸时将其从父级中移除,从而从您的主游戏场景中移除此责任。

-(void) touchBegan:(UITouch *)touch withEvent:(UIEvent *)event{
    [self removeFromParentAndCleanup:YES];
    [super touchBegan:touch withEvent:event];
}
于 2014-09-24T07:06:51.310 回答