我有一个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;
答案 0 :(得分:0)
问题最终出现在我的init方法中,特别是我做某些事情的顺序。