2010-06-15 95 views
0

我正在使用CCSprite重绘我的应用程序的背景图像(它就像一个移动的背景)。不过我也使用CCSprite来绘制我的英雄和敌人。在某些情况下,敌人会落在我的背景图像之后。我的理解是,如果你这样做:如何让精灵落后于另一个精灵

[self addChild:sprite1]; 
[self addChild:sprite2]; 

然后sprite1将在后面sprite2如果他们彼此相交的窗口。然而,有什么办法让sprite1回到前面,以防它们与sprite2相交?我试图寻找在documentation但cocos2d的似乎并不有我要找的方法...

回答

0

我没有使用cocos2d的... 一般来说如果你想使sprite1上sprite2顶部

[self replaceChild:sprite2 withSprite: sprite1] 

同样,如果你想使sprite2上的sprite1

[self replaceChild:sprite1 withSprite: sprite2] 

您需要实现的replaceChild方法顶部...通常的addChild方法添加元素的数组,你可以使用replaceObjectAtIndex方法,如果它是数组。

+0

嗯,可以工作,我可以想象替换子方法将涉及删除背景精灵,并再次创建它。我仍然想知道在cocos2d库中是否有直接的方法。看来这个方法是精灵对象的标准方法。 – 2010-06-16 00:45:08

0

自从我访问这个版本以来已经有一段时间了,但听起来像你想为你的精灵维持一个z顺序。 Cocos2D确实在addChild call中支持这个功能。我不完全记得这是否会为你解决问题,但这是一个很好的起点。

3

您也可以将z作为参数传递给addChild。

[self addChild:foo z:0] 
[self addChild:baz z:1] 
+0

感谢AndyRoth,它工作正常... – 2012-02-26 21:36:07

相关问题