У меня есть класс 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;