Cocos2d - 对象似乎正在重置其位置

时间:2011-08-25 18:08:33

标签: animation cocos2d-iphone

我有一个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 :(得分:0)

问题最终出现在我的init方法中,特别是我做某些事情的顺序。