2013-10-10 3 views
0

그래서 여기에 내가하려고하는 것의 요지가 있습니다.스케일 오른쪽 하단에서 CCSprite

나는 플레이어가 움직일 때마다 내가 계속 스크롤하는 전경 스프라이트 배열을 가지고 있습니다. 제가하고 싶은 것은, 플레이어가 Y 축상의 어떤 점을지나 가기 시작하고, 포 그라운드 스프라이트를 계속 움직이면서 스케일을 줄이는 것입니다.

플레이어가 올라갈 때 왼쪽 하단 모서리에서 스프라이트 크기를 조정할 수 있기를 원하며 아무 문제없이 작동하고 있습니다.

실제 문제는 플레이어가 내려올 때 오른쪽 하단 모서리에서 스프라이트 크기를 조정하는 것입니다. 이제 은 스케일링을하기 전에 각 스프라이트의 앵커 포인트를 1,0으로 설정하여이 작업을 수행 할 수 있다고 생각했지만 작동하지 않는 것 같습니다. 스프라이트는 여전히 왼쪽 하단 모서리에서 확장됩니다.

무엇이 여기에 있습니까?

// do logic to identify the scale factor we want 

for (CCSprite *sprite in foreground_sprites) 
{ 
    CGPoint old_anchor = sprite.anchorPoint; 
    [sprite setAnchorPoint:ccp(1,0)]; 
    [sprite setScale:scale_factor]; 
    [sprite setAnchorPoint:old_anchor]; 
} 
+0

귀하의 질문은 오른쪽 하단에 표시되며 설명 하단에는 다음과 같이 쓰여 있습니다. 왼쪽 하단에 앵커 포인트 (0,0)가 있고 오른쪽 (0,1) – Guru

답변

0

이 속성을 사용하면 어땠습니까?

ignoreAnchorPointForPosition(false); 

난 당신이 바닥 동안 플레이어의 Y 위치 증가를 왼쪽에서 확장하지만 바닥을 사용하여 확장 할 만약 내가 제대로 이해하고 그

0

과 비슷한 무언가가 있어야적인 Cocos2D-X를 사용하고 있습니다 그들은 내림차순입니까?

그럼 앵커 포인트 만 변경할 수는 없습니다. 앵커 포인트와 위치는 화면에 스프라이트를 배치하기 위해 사용됩니다. 따라서 (0,0)의 앵커 포인트를 사용하여 화면에 스프라이트를 배치 한 경우 앵커 포인트를 화면의 동일한 위치에 유지하면서 앵커 포인트를 (1,0)로 전환하려면 다음을 수행해야합니다. 위치를 업데이트하십시오.

잘하면 문제를 올바르게 이해하고 도움을 주었기를 바랍니다.