2009-05-17 3 views
1

cocos2d에서 누가 스프라이트를 센터링하는 방법을 알고 있습니까? 지금 당장은 화면에서 터치하는 곳으로 이동하는 스프라이트가 있습니다. 문제는 스프라이트가 왼쪽 하단 모서리에 정렬된다는 것입니다. 즉, 아래로 이동하는 대신 바닥을 조금만 만지면 스프라이트가 위로 이동합니다. 미리 감사드립니다! 여기 스프라이트를 중앙 정렬하는 방법?

내 코드 ...

(BOOL) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *) event { 
    UITouch *touch = [touches anyObject]; 
    CGPoint point = [touch locationInView: [touch view]]; 

    [mainSprite do:[MoveTo actionWithDuration:0.5 position:ccp(point.x, 480 - point.y)]]; 

    return YES; 
} 

답변

1

가적인 Cocos2D에서 스프라이트의 기본 변환 앵커 스프라이트의 중심이다, 그래서 스프라이트의 중심이 감동에 끝나는 등 이동한다 당신이 지금 가지고있는대로. 스프라이트의 변형 앵커를 변경 했습니까?

내가 생각할 수있는 유일한 것은 당신의 mainSprite 다른 CocosNode의 아이 인 경우는 다음 터치가이 방법을 사용하여 노드 공간 좌표로 변환해야 할 수도 있습니다 :에 ...

- (CGPoint)convertToNodeSpace:(CGPoint)worldPoint; 

을 친 노드. 그러나, 나는 이것이 문제라는 것을 의심한다. 이것이 도움이되지 않으면 죄송합니다.

EDIT : OP,이 글을 읽으면 어떤 버전의 Cocos2D를 사용하고 있습니까? 나는 0.8 (현재 svn 트렁크에 있음)이 앵커링이 작동하는 방식을 변경한다고 생각합니다. 나중에 참조하기 위해 다른 사람들이 당신이 무엇을하고 있는지를 아는 것이 유용 할 수 있습니다.

0

나는 그것을 작동시켰다! 코드는 여기 알고 싶은 사람 ... 들어

[mainSprite setTransformAnchor:ccp(24.0, 64.5)]; 

(24)는 스프라이트의 절반

64.5는 스프라이트 높이의 절반 폭