프로그래밍/Cocos2D2012. 2. 5. 14:16
아이폰 용으로 레티나 디스플래이를 지원할 경우
파일명 뒤에 -hd 를 붙여 사용한다.

이때 아이패드용으로 개발 시 이 레티나용 소스를 사용해서 표현하고 싶다면
ccFileUtils.m  파일을 찾아가

+(NSString*) getDoubleResolutionImage:(NSString*)path

이 함수안에 

if( CC_CONTENT_SCALE_FACTOR() == 2)

위의 부분을 아래와 같이 변경해 주자

if( CC_CONTENT_SCALE_FACTOR() == 2 || (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad))
이는 레티나 디스플래이용으로 설정되었을 때 -hd 파일을 쓴다는 부분인데
뒤에 부가적으로 아이폰 일 경우에도 사용하겠다고 선언해주는 것이다.

UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad
이 부분은 현재 인터페이스가 아이패드인지 확인 하는 부분


추가적으로 이렇게 불러오는 리소스와 더불어
포인트도 아이폰용 포인트를 그대로 사용하고 싶다면 아래와 같이 인라인 함수를 하나 만들어 사용하면 편하다.

/** Returns ipad point.
 @return CGPoint
 */
static inline CGPoint
CGPointMakeBothIPad(float iPhonePoint_X, float iPhonePoint_Y) {
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
        return CGPointMake(iPhonePoint_X/320*768,iPhonePoint_Y/480*1024);
    else
        return CGPointMake(iPhonePoint_X,iPhonePoint_Y);
}
Posted by windship