Cocos2d - объект, кажется, сбрасывает свою позицию - PullRequest
0 голосов
/ 25 августа 2011

У меня есть класс Enemy, который создается на GameplayLayer в данной позиции.Когда я вызываю врага, а затем возвращаю его текущую позицию в журнале, он возвращает позицию, в которой он был создан (правильно).Теперь я пытаюсь добавить движение в метод обновления класса Enemy.Однако, когда я это делаю, он «телепортирует» противника в положение 0,0, а затем применяет к нему движение.Когда я возвращаю позицию врага из его метода обновления, он сообщает 0,0, а не позицию, в которой он был создан.

Теперь я использую анимацию для представления врагов на экране.Могу ли я получить доступ к позиции анимации так же, как со спрайтом, или я что-то упустил полностью?

Появление врага в слое игрового процесса:

CCLOG(@"Creating Enemy");
Enemy *enemy = [[Enemy alloc] initWithSpriteFrame:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"node-red-1.png"]];
[enemy setPosition:spawnLocation];
[sceneSpriteBatchNode addChild:enemy z:ZValue tag:kEnemySpriteTagValue];
[enemies addObject:enemy];

Действие вражеского движения:

CCLOG(@"Enemy->Starting the Traveling Animation");
action = [CCRepeatForever actionWithAction: [CCAnimate actionWithAnimation:skullRedAnim restoreOriginalFrame:NO]];
self.moveAction = [CCMoveBy actionWithDuration:(screenSize.height/200) position:ccp(self.position.x, screenSize.height + 100)];
[self runAction:moveAction];
break;

1 Ответ

0 голосов
/ 26 августа 2011

В итоге проблема заключалась в моем методе инициализации, в частности в том порядке, в котором я выполнял некоторые действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...