2011-08-25 2 views
0

주어진 위치에서 GameplayLayer에 생성되는 Enemy 클래스가 있습니다. 적을 스폰하고 로그의 현재 위치를 반환하면 생성 된 위치가 (올바르게) 반환됩니다. 이제 Enemy 클래스의 업데이트 메서드에 일부 동작을 추가하려고합니다. 그러나, 내가 그것을 할 때, 그것은 0,0의 위치로 적을 "텔레포트"하고, 그 움직임을 그곳에 적용합니다. 업데이트 방법 내에서 적의 위치를 ​​되돌려 놓았을 때, 그것이 생성 된 위치가 아니라 0,0을보고합니다.Cocos2d - 개체의 위치가 재설정되는 것 같습니다.

이제 애니메이션을 사용하여 화면의 적을 표현합니다. 스프라이트를 사용할 때와 같은 방식으로 애니메이션의 위치에 액세스 할 수 있습니까?

게임 플레이 층에 적을 산란 :

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]; 

적 이동 조치 : 문제는 특별히 순서가있는 내가 어떤 일을하고, 내 init 메소드에 었죠

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

.

관련 문제