태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
 

 
블로그 이미지
Android, iOS 어플 개발자 어플 소개, 관련 정보, PSP 게임, Wii 게임, NDS 게임, 토런토 공유, 일본, 재테크에 관심있습니다. My App Factory


 
 

[cocos2d, iOS 4.0] jpg 사용시 발생하는 문제해결

컴퓨터/cocos2d & objective C | 2010.07.02 23:29 | Posted by 뉴스로 영어공부 My App Factory

오늘도 열심히 4.0으로 앱들을 변경하는 중입니다. cocos2d에서만 발생하는 문제인지 모르겠으나 jpg 이미지들이 4.0에서는 모두 검거나 흐릿하게 출력되는 버그가 발생했습니다. (png파일들은 문제없더군요.)
구글링해서 찾은 해결방법입니다. 사용하는 cocos2d 버젼에 따라 위치 차이는 있겠으나 동일한 구문을 수정해주면 될듯합니다. 

CCTexture2D.m 파일의 - (id) initWithImage:(UIImage *)uiImage 함수중

hasAlpha = ((info == kCGImageAlphaPremultipliedLast) || (info == kCGImageAlphaPremultipliedFirst) || (info == kCGImageAlphaLast) || (info == kCGImageAlphaFirst) ? YES : NO);

에 다음 부분을 추가해 주시면 해결됩니다. 

hasAlpha = ((info == kCGImageAlphaNoneSkipLast) || (info == kCGImageAlphaPremultipliedLast) || (info == kCGImageAlphaPremultipliedFirst) || (info == kCGImageAlphaLast) || (info == kCGImageAlphaFirst) ? YES : NO);
에휴.. 오늘도 깜놀했군요. ^^;

[objective C] NSDate로부터 int형의 년, 월, 일 추출하기

컴퓨터/cocos2d & objective C | 2010.04.12 01:02 | Posted by 뉴스로 영어공부 My App Factory
C#에 너무 익숙해서인지 자꾸 비슷한 걸 찾게 되는군요. C#의 Date형에는 멤버로 year, month, day 있어서 편하게 사용했었기에,  같은 방식으로 사용할수 있도록 만든 코드입니다.   

NSDate *today = [NSDate date];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

NSLocale *locale               = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];

[dateFormatter setLocale:locale];

[locale release];

// Get year

[dateFormatter setDateFormat:@"yyyy"];

int year = [[dateFormatter stringFromDate:today] intValue];

// Get Month

[dateFormatter setDateFormat:@"MM"];

int month = [[dateFormatter stringFromDate:today] intValue];

// Get Day

[dateFormatter setDateFormat:@"dd"];

int day = [[dateFormatter stringFromDate:today] intValue];

[dateFormatter release];





[objective C] New Line 개행문자

컴퓨터/cocos2d & objective C | 2010.04.08 03:03 | Posted by 뉴스로 영어공부 My App Factory


너무 간단한 것이지만 기존 언어들과 상이한 부분이라 기록합니다. 

C계열에서 공통으로 사용되는 개행문자는 "¥r¥n"입니다만,
Objective C에서는 "\n"입니다. 
(이제껏 기호 "¥" 와 "\"는 같은 것이라고 생각하며 살았습니다만 틀린 경우도 있다는 걸 처음 알게 되었군요... )



코딩시 많이 사용하게 되는 문자열 변환시, 표시형식지정자가 일반적인 C에서의 문법과 조금 틀리고, 특히나 Apple에서 제공되는 objective C 레퍼런스에 관련된 내용이 없기 때문에 혹, 저와 같은 곤란을 겪으시는 분이 있으시면 참고가 되시길 바라며 간략히 남겨 둡니다. 

일반적으로 숫자를 문자열로 변환할 경우 int형을 예로 들면 치완자로 "%d"가 사용됩니다. 여기까지는 대부분의 언어에서 공통입니다만 표시될 문자수를 지정하여 - 예를 들면 1,2,3,4를 01, 02, 03, 04와 같이 표시하고 싶을 경우, 언어에 따라 "%2d", "%dd", "%d2"등으로 조금씩 다릅니다. 대부분의 C기반의 언어가 저 셋중 하나를 사용하기 때문에 몇번 바꿔가며 넣어보면 원하는 데로 출력이 됩니다만, objective C의 경우는 "%02d"와 같이 표기하여야 합니다. 

코드예:

        [NSString stringWithFormat:@"%02d:%02d:%02d", 변수1, 변수2, 변수3]








cocos2d 사운드 출력 코드

컴퓨터/cocos2d & objective C | 2010.03.15 16:46 | Posted by 뉴스로 영어공부 My App Factory

cocos2d에서의 사운드 출력방법입니다. 

개발중인 게임에 효과음이 필요하여 관련소스를 검색해 보니 OpenAL에 대한 자료가 많이 나오더군요. 
OpenAL은 오픈API인 3D Sound Library이며 Loki Software라는 곳에서 개발하였으나 현재, 이회사는 없어지고 Creative와 Apple이 관리하고 있다고 합니다. Apple이 관리하는 오픈소스이기때문인지  XCode설치시 IPhone용 라이브러리에 OpenAL이 포함되어 있음으로 따로 찾으실 필요는 없습니다.  




OpenAL을 직접 이용하셔도 괜찮지만, cocos2d에서는 더 간단하게 사용할수 있도록 CocosDenshin이라는 이름의framework가 준비되어 있습니다. 특별한 효과가 필요없이 단순 재생만 할 경우, 아래의 코드만으로 간단히 구현할수 있습니다. 


//"cocos2d.h"에 import되어 있지 않음으로 별도의 import 선언이 필요합니다. 

#import "SimpleAudioEngine.h"


//효과음 재생

[[SimpleAudioEngine sharedEngine] playEffect:@"effect1.m4a"];

//배경음악재생

[[SimpleAudioEngine sharedEngine] playBackgroundMusic:@"backgroundMusic.m4a"];

//배경음악재생 중지

[[SimpleAudioEngine sharedEngine] pauseBackgroundMusic];




포맷은 기본적으로 "wav", "mp3"을 지원하는 이외에 "m4a"를 지원하고 있습니다. 아이폰에 기본 설치된 음성메모App에서 녹음할 경우, m4a로 파일이 생성됩니다. 필요한 효과음을 직접 음성메모로 녹음한 후, 이를 메일첨부를 이용하여 PC로 전송하여 바로 이용하니 대단히 편리하였습니다. (효과음 구현으로 일정에서 하루를 잡았었는데 허무할 정도로 빨리 끝나버렸습니다. - 덕분에 잠깐 블로그질을.. ^^;)


아이폰 프로그래밍 - cocos2d 설치 및 템플릿 추가하기

컴퓨터/cocos2d & objective C | 2010.02.02 09:00 | Posted by 뉴스로 영어공부 My App Factory


OpenGL을 사용해 본 경험이 없는 나이기에 (그래픽스  API 사용경험 전무, 게임관련 경험도 전무..) 아무래도 OPenGL을 직접 사용하기 보다는 
cocos2d를 먼저 사용해 보기로 하였다. 


이전에 잠깐 cocos2d에 대해 찾아보았을때는 직접 템플릿을 만들어 추가해 주어야 XCode에서 템플릿으로 이용할 수 있는듯 하더니, 최근 버젼(0.99rc)에는 템플릿까지 포함하여 배포하는 것 같다. 


cocos2d는 다음 사이트에서 받을 수 있다. 





cocos2d는 OpenGL ES 1.1 을 지원하는 
오픈소스 프로젝트로 
2d그래픽 프레임워크이다.








다운로드 받은 후 압축을 해제하면 API라이브러리와 예제 파일, 그리고 템플릿 관련 파일들을 볼수 있다. 이제 설치를 위해  터미널을 실행하자. 


터미널은 응용프로그램 -> 유틸리티에서 찾을 수 있다. 


터미널을 실행한 후, cocos2d를 압축한 폴더에서 install_template.sh란 이름의 파일을 드랙하여 터미널에 넣어주자. 이후 자동으로 cocos2d 템플릿 설치를 시작한다. 



설치가 끝난 후, XCode에서 New Project를 선택해 보면 다음과 같이 템플릿이 추가된 것을 볼 수 있다.