2014-03-02 3 views
1

화면 방향이 세로 인 경우 스프라이트가 북쪽에서 남쪽으로 이동해야합니다. 그러나 스프라이트는 세로 모드에서 동쪽에서 서쪽으로 가고 있습니다. 화면 방향이 가로 방향 인 경우 스프라이트는 동쪽에서 서쪽으로 이동하므로이 점에 대해 매우 혼란 스럽습니다. 스프라이트를 위 아래로 이동하려고합니다.스프라이트 방향 Cocos2d 3.0

코드 플레이어 후

- (void)addMonster:(CCTime)dt 
{ 

monster = [CCSprite spriteWithImageNamed:@"MarioTube_Body_Rev.png"]; 

int minY = monster.contentSize.height/2; 
int maxY = self.contentSize.height - monster.contentSize.height/2; 
int rangeY = maxY - minY; 
int randomY = (arc4random() % rangeY) + minY; 

monster.position = CGPointMake(self.contentSize.width + monster.contentSize.width/2, randomY); 
[self addChild:monster]; 

int minDuration = 2.0; 
int maxDuration = 4.0; 
int rangeDuration = maxDuration - minDuration; 
int randomDuration = (arc4random() % rangeDuration) + minDuration; 

CCAction *actionMove = [CCActionMoveTo actionWithDuration:randomDuration position:CGPointMake(-monster.contentSize.width/2, randomY)]; 
CCAction *actionRemove = [CCActionRemove action]; 
[monster runAction:[CCActionSequence actionWithArray:@[actionMove,actionRemove]]]; 

} 

답변

0

그래서 스프라이트를 제어 주위 그것으로 나는 단순히 주위

- (void)addMonster:(CCTime)dt 
{ 

monster = [CCSprite spriteWithImageNamed:@"MarioTube_Body_Rev.png"]; 

int minX = monster.contentSize.height/2 - monster.contentSize.height/2; 
int maxX = self.contentSize.height; 
int rangeX = maxX - minX; 
int randomX = (arc4random() % rangeX) + minX; 

monster.position = CGPointMake(randomX, self.contentSize.height + monster.contentSize.height/2); 
[self addChild:monster]; 

int minDuration = 2.0; 
int maxDuration = 4.0; 
int rangeDuration = maxDuration - minDuration; 
int randomDuration = (arc4random() % rangeDuration) + minDuration; 

CCAction *actionMove = [CCActionMoveTo actionWithDuration:randomDuration position:CGPointMake(randomX, -monster.contentSize.height/100)]; 
CCAction *actionRemove = [CCActionRemove action]; 
[monster runAction:[CCActionSequence actionWithArray:@[actionMove,actionRemove]]]; 

} 
을 "높이"및 폭의 일부를 변경했다 알아 냈어