#objective-c #xcode #cocos2d-iphone #spritebuilder
#цель-c #xcode #cocos2d-iphone #spritebuilder
Вопрос:
Я хочу установить порядок z для одного CCNode, но я пробовал эти три варианта, и это не работает:
myNode.zOrder = 10;
myNode.physicsNode.zOrder = 10;
[myScene reorderChild:myNode z:10];
Также myNode.physicsNode.zOrder устанавливает порядок всех CCNodes, которые находятся внутри CCPhysicsNode, независимо от того, какой узел является myNode.
Спасибо за все!
Ответ №1:
Установки zOrder
свойства должно быть достаточно. Помните, что узлы с более высоким zOrder
значением отображаются впереди.
Я только что успешно протестировал это:
CCSprite *sprite1 = [CCSprite spriteWithImageNamed:@"image1.png"];
sprite1.position = ccp(100, 100);
[self addChild:sprite1];
CCSprite *sprite2 = [CCSprite spriteWithImageNamed:@"image2.png"];
sprite2.position = ccp(110, 110);
[self addChild:sprite2];
sprite2.zOrder = -10; // second sprite goes behind
Комментарии:
1. Это верно, но моя проблема не в визуализации. Сложность заключается в том, когда я перетаскиваю спрайты. Я могу поставить один перед другим, но когда я попытался перетащить:
2. Это верно, но моя проблема не в визуализации. Сложность заключается в том, когда я перетаскиваю спрайты. Я могу поместить один перед другим, например, sprite1 находится в z = 2, а sprite2 — в z = 1, а с помощью .zOrder я меняю его на sprite1 в z = 1 и sprite2 в z = 2. Но когда я пытаюсь перетащить sprite2, он теперь находится впереди из sprite1 я не могу, вместо этого я перетаскиваю sprite1, и я должен убрать его, чтобы перетащить sprite2, независимо от того, находится ли он спереди.