как сделать так, чтобы спрайт шел за другим спрайтом - PullRequest
0 голосов
/ 15 июня 2010

Я использую CCSprite для перерисовки фонового изображения моего приложения (это как движущийся фон).Однако я также использую CCSprite для рисования своего героя и врагов.В некоторых случаях враги уходят за мое фоновое изображение.Насколько я понимаю, если вы сделаете:

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

Тогда sprite1 будет позади sprite2, если они пересекаются друг с другом в окне.Однако есть ли способ вернуть спрайт1 назад, если они пересекают спрайт2?Я попытался просмотреть документацию , но у cocos2d, похоже, нет метода, который я ищу ...

Ответы [ 3 ]

3 голосов
/ 16 декабря 2011

Вы также можете передать z в качестве аргумента addChild.

[self addChild:foo z:0]
[self addChild:baz z:1]
0 голосов
/ 17 июня 2010

Прошло много времени с тех пор, как я посетил это, но похоже, что вы хотите поддерживать z-порядок для ваших спрайтов.Cocos2D действительно поддерживает это в вызове addChild .Я не совсем помню, решит ли это что-то для вас, но это хорошая отправная точка.

0 голосов
/ 15 июня 2010

Я не использовал cocos2d ... В общем, если вы хотите вывести sprite1 поверх sprite2

[self replaceChild:sprite2 withSprite: sprite1]

аналогично, если вы хотите поместить sprite2 поверх sprite1

[self replaceChild:sprite1 withSprite: sprite2]

Вам необходимо реализовать метод replaceChild ... Обычно метод addChild добавляет элемент в массив. Вы можете использовать метод replaceObjectAtIndex, если это массив.

...