我正在使用CCSprite来重绘我的应用程序的背景图像(它就像一个移动的背景)。但是我也在使用CCSprite来绘制我的英雄和敌人。在某些情况下,敌人会在我的背景图像后面。我的理解是,如果你这样做:
[self addChild:sprite1];
[self addChild:sprite2];
如果sprite1在窗口中彼此相交,那么sprite1将在sprite2后面。但是有没有办法让sprite1回到前面,以防它们与sprite2相交?我试着查看documentation,但cocos2d似乎没有我正在寻找的方法......
答案 0 :(得分:3)
您也可以将z作为参数传递给addChild。
[self addChild:foo z:0]
[self addChild:baz z:1]
答案 1 :(得分:0)
我没有用过cocos2d ...... 一般情况下如果你想将sprite1放在sprite2的顶部
[self replaceChild:sprite2 withSprite: sprite1]
同样如果你想将sprite2放在sprite1的顶部
[self replaceChild:sprite1 withSprite: sprite2]
你需要实现replaceChild方法...通常addChild方法将元素添加到数组中,如果是数组,可以使用replaceObjectAtIndex方法。
答案 2 :(得分:0)
我访问过这段时间已经有一段时间,但听起来你想为你的精灵维持一个z顺序。 Cocos2D确实在addChild call中支持这一点。我不完全记得这会为你解决问题,但这是一个很好的起点。