【问题标题】:IPhone and Cocos2d Sprites/LayersiPhone 和 Cocos2d 精灵/图层
【发布时间】:2008-11-26 16:49:54
【问题描述】:

我正在使用 cocos2d-iphone 将 Sprites 放置到图层上以设置游戏场地。在游戏中的某些点,需要根据游戏条件移除某些 Sprite。我想做的是设置一个 Sprite 指针数组,但我有两个问题:

将 Sprite 指针放入数组的最佳方法是什么?

如何在 cocos2d 中只用一个指向 Sprite 的指针来移除 Sprite?我知道如何从其父层执行此操作,但这对于主游戏循环来说运行时密集。

提前致谢!

【问题讨论】:

  • 请随意接受您自己的答案,而不是我的。听人说,你用你的方法就能让它工作起来,我不会生气的! :)

标签: iphone objective-c cocos2d-iphone


【解决方案1】:

Sprite 类继承自CocosNode,所以你应该可以调用spritePointer.parent.remove(spritePointer)

【讨论】:

    【解决方案2】:

    我想通了。如果其他人有兴趣,方法是声明一个 Sprite 指针数组,例如:

    Sprite * mySprites[10][10]; // assuming a 10x10 playfield where obstacles get placed
    

    然后,在设置 Sprite 时:

    mySprites[0][0] = [Sprite spriteWithFile: @"obstacle.png"];   
    [myLayer add:mySprites[0][0]];  
    

    要删除 Sprite:

    [myLayer remove:mySprites[0][0]];
    

    【讨论】:

      【解决方案3】:

      还有[mySprite removeFromParentAndCleanup:YES]

      【讨论】: