iDev/Cocos2D

iPhone 5 전용 배경화면 패치

KraZYeom 2013. 3. 17. 17:52
반응형

iPhone 5 전용 배경화면 패치


iPhone 4S, iPhone 4에서는 아무런 문제가 없다. 

iOS에서는 *.png와 *@2x.png 로 이미지를 레티나용이냐 아니냐로 구분한다. cocos2d에서는 @2x 대신에 -hd를 사용하여 구분한다. 


iPhone 5는 세로가 1136이고 iPhone 4S이하는 960이기 때문에 배경화면을 기존 -hd로 설정을 하면 공백이 생긴다.


해결을 위해서 cocos2d를 살짝 수정을 해서 iPhone 5전용 이미지를 지원하도록 패치하도록 한다. 



“AppDelegate.m” 파일로 이동을 한다. (BOOL)application:didFinishLaunchingWithOptions:launchOptions 메소드에서 아래 코드 부분을 찾는다. 


[sharedFileUtils setiPhoneRetinaDisplaySuffix:@"-hd"]; // Default on iPhone RetinaDisplay is "-hd"


이 부분에서 파일 확장자에 따른 이미지를 구분하게 해준다. 이 부분을 살짝 고쳐주면 iPhone 5 전용 이미지 지원이 가능하다. 

setiPhoneRetinaDisplaySuffix 의 정의로 이동한다. Cmd와 왼쪽 버튼을 클릭해도 정의로 이동한다.



-(void) setiPhoneRetinaDisplaySuffix:(NSString *)suffix

{

[_suffixesDict setObject:suffix forKey:kCCFileUtilsiPhoneHD];

}


// 1.

// iPhone 5 전용 이미지 지원

-(void) setiPhone5RetinaDisplaySuffix:(NSString *)suffix

{

[_suffixesDict setObject:suffix forKey:kCCFileUtilsiPhone5HD];

}


1. iPhone 5 전용 이미지 지원을 위해서 기존 메소드를 복사 붙여넣기 해서 메소드 이름을 변경을 하고, forKey를  kCCFileUtilsiPhone5HD 로 변경한다. 


“CCFileUtils.h” 로 이동한다. 

-(void) setiPhoneRetinaDisplaySuffix:(NSString*)iPhoneRetinaDisplaySuffix;

아래 부분에 위에 추가한 메소드를 아래와 같이 정의 한다. 

-(void) setiPhone5RetinaDisplaySuffix:(NSString*)iPhoneRetinaDisplaySuffix;


그리고 다시 “AppDelegate.mm” 파일로 이동한다.

  // 1.

  [sharedFileUtils setiPhone5RetinaDisplaySuffix:@"-5hd"]; // Default on iPhone 5 RetinaDisplay is "-5hd"


  1. iPhone 5 전용 이미지를 -5hd를 사용하여서 지원하도록 한다. 

이렇게 하면 -5hd를 사용해서 iPhone 5, -hd를 사용해서 iPhone 4S, iPhone 4 그리고 아무것도 붙이지 않고 iPhone 3GS 이하로 구분해서 배경화면을 설정 할 수 있다.

패치한 파일 

반응형