2014-04-27 1 views
1

iPhone 용 cocos2d를 사용하여 해상도와 별도로 스프라이트를 배치해야하므로 스프라이트가 iPhone 5/5의 하단에있는 경우, iPhone 4/4에서도 바닥에 있습니다.해상도와 독립적으로 화면 하단에 스프라이트 배치

다음 코드는 아이폰 5/5S 해상도에서 작동하지만 이전 아이폰 모델 :

ground1 = [CCSprite spriteWithImageNamed:@"ground1.png"]; 
ground1.position = ccp(self.contentSize.width/2,self.contentSize.height/2-259); 
[self addChild:ground1]; 

내가 무엇을 할 수 있습니까?

+0

는 어떤 버전에서? 너 자신의 장면인가? – lucianomarisi

+0

"Solved"라는 제목을 편집하는 대신 올바른 답으로 확인란을 선택해야합니다. 그러면 모든 사람이 누군가가 문제를 해결하는 데 도움이되었음을 나타냅니다. –

+0

아하 좋아, 고마워. 지금 막 했어. – luaLover

답변

2
CGSize size = [[CCDirector sharedDirector]viewSize]; 
ground1 = [CCSprite spriteWithImageNamed:@"ground1.png"]; 
ground1.position = ccp(size.width/2,[ground1 boundingBox].size.height/2); 
[self addChild:ground1]; 

우선보기의 크기가 필요합니다. Cocos2D에서는 CCDirector를 호출하고 viewSize를 얻는 값을 얻습니다. 그 후, 당신이했던 것처럼 스프라이트를 생성합니다. 이제 중요한 단계는 스프라이트의 위치를 ​​지정하는 것입니다. 이제 viewSize가 'size'에 저장되어 있으므로 size.width/2로 X 값을 얻을 수 있습니다.

이제 스프라이트가 X에 맞춰졌습니다. 이제 Y 위에 놓습니다. 스프라이트가 아래쪽에 오도록하고 싶습니다. 그래서 내가이 그림을 보여으로 포인트를 계산해야합니다

enter image description here

그래서 Y 값이 정확히 스프라이트의 크기의 높이/2입니다. 스프라이트 크기를 반환하는 [sprite boundingBox] 메서드를 호출하여이 값을 얻을 수 있습니다. 결론적으로

, 우리는 우리의 스프라이트는 X를 중심으로 한 (size.width/2) 및 하단적인 Cocos2D의 ([스프라이트에는 BoundingBox] .size.height/2)

+0

자세한 내용은 제 편집보기 – mursang

+0

설명해 주셔서 감사합니다! 이제는 제대로 작동합니다! 다시 한 번 감사드립니다! – luaLover

+0

완벽한! :) 올바른 대답을 수락하십시오. 감사! – mursang

관련 문제