iDev 211

[cocos2d] 소스 하나로 iOS, Mac, Android로 개발하기

하나의 프로젝트에서 여러개의 플랫폼용으로 빌드 할 때, 아래 코드를 잘 조합해서 하면 하나의 소스로 여러개의 플렛폼으로 빌드를 할 수 있다. 간단하게 설명.1. workspace를 만든다. 2. cocos2d iOS Project를 만든다. Add to, Group(처음 생성하는 프로젝트면 없을 수도 있다) 위치를 workspace root로 정한다. 3. cocos2d Mac Project를 만든다. Add to, Group 위치를 workspace root로 정한다. 4. 하나의 프로젝트에서 소스를 생성하고 다른 프로젝트로 옮길 때는 Project > Target > Build Phases > Compile Sources > + > Add Other ... > 원하는 소스코드 추가(그냥 드래그 앤 드..

iDev/Cocos2D 2014.03.09

다윤이와 함께 게임 만들기 - 게임 개발 중

지난 이야기...; 다윤이와 함께 게임 만들기 - 게임 기획 몇 달이 지난건지 아무튼 지난 11월 말에 시작해서 한동안 정신이 없어서 방치하다가, 최근에 시간도 조금 생기고 cocos2d v3가 나와서 이리저리 필이 받아서 다시 진행. 이미지 그려준게 너무 양이 적어서 뭔가 만들기 힘들다. 그리고 그림은 흑백이다. 점수만 넣고 배경 화면만 넣으면 대충 마무리 되는 듯. 사운드는 아무거나 하나 따서 사용해야겠다. 내일 쯤 다윤이에게 선물로 줘야지. :-)

iDev/Cocos2D 2014.03.07

cocos2d v3 for Mac, 레티나 버그 패치

* 그냥 급하게 지원하게 코드만 수정한 버전입니다. 공식 버전에서 곧 지원될때 까지만 사용 바랍니다. 전체 코드를 몰라서 그냥 후다닥 지원 가능하게만 했은 성능상에 문제가 있을 수도 있습니다. 어쩌다 보니 제 코드를 pull request 했더니 merge 되었네요. https://github.com/cocos2d/cocos2d-iphone/commit/1caaec05b967160c342fa92a9033909ab11f6edb v3 rc2에서는 풀스크린을 하면 전체 확대가 안되었습니다. 이런 문제를 rc3에서 해결했는데 이것 때문에 다른 버그가 생겨버렸습니다.cocos2d v3 rc 3에서 레니타 맥에 대한 패치가 있었는데요. 풀스크린상에는 문제가 없는데 작은 화면상에서는 화면이 2배 확대되어 나오는 버그..

iDev/Cocos2D 2014.03.06

cocos2d v3 for mac keyboard 입력 패치

* 그냥 급하게 지원하게 코드만 수정한 버전입니다. 공식 버전에서 곧 지원될때 까지만 사용 바랍니다. 전체 코드를 몰라서 그냥 후다닥 Copy&Paste로 지원 가능하게만 했은 성능상에 문제가 있을 수도 있습니다. v2까지는 키보드 델리게이트를 사용해서 잘 먹었는데, 왜 v3에서는 빠졌는지 모르겠습니다. 추후 버전에서 지원이 될 거라고 생각합니다. Mac 에서는 기본적으로 키보드 게임이 어울리니까요. 기본 템플레이트 파일을 빌드해서 키보드를 누르면 '딩' '딩' 소리만 스피커에서 나옵니다. 키 이벤트를 못 받는다는 소리라고 하네요. NSWindow에서 입력을 처리 하도록 할려니 잘 모르겠습니다. 그래서 cocos2d를 까니 mouse&touch 핸들러가 있어서 살짝 수정했습니다. CCGLView.m 파일..

iDev/Cocos2D 2014.03.05

cocos2d v3에서 collision detection 하기

cocos2d v3에는 기본적으로 Chimpunk가 내장되어 있다. 충돌을 했을 때 이벤트 처리를 하기 위해서 이리저리 삽질하다가 알아낸 결과. 이상하게 구글링을 해도 제대로된게 안나온다. 헤더 파일에 자세하게 나와있는데 감이 안오다가. 구현하고 나서 헤더 파일을 보니 이제야 알겠음. physicsBody에서 collisionGroup이 같으면 같은놈으로 취급하여 충돌시키지 않는다. 반대로 생각해서 계속해서 통과해서 오랜시간 삽질. 기본적으로 nil값으로 무조건 충돌시킨다. 가장중요한건 collisionType. collisionType 에 부여된 이름에 따라서 delegate에서 호출하는 메소드 명이 달라진다. 여기서도 오랜시간 삽질. 기본값은 default 이다. 하지만 ccPhysicsCollisi..

iDev/Cocos2D 2014.03.02

Apportable로 cocos2d 게임을 안드로이드 포팅시 해상도 문제 해결 방법

cocos2d-iPhone 게임을 안드로이드로 포팅시 그냥 아무런 옵션 없이 컴파일을 하면 갤럭시 노트 3와 같은 고해상도 단말에서는 아주 작게 나타난다. 이것을 해겨 하기 위해서 아래 코드를 앱이 실행 될 때 넣어주면 된다. -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { #ifdef ANDROID [UIScreen mainScreen].currentMode = [UIScreenMode emulatedMode:UIScreenBestEmulatedMode]; #endif... }

iDev/Cocos2D 2014.02.28

자신의 App에 별점 평가 위해 Appirater 적용하기

앱에 별점을 주는 프레임워크 Appirater https://github.com/arashpayan/appirater 위에서 파일을 다운로드 받고 (또는 cocoPods, git 등등)으로 관련 파일 3개(Appirater.h, Appirater.m, AppiraterDelegate.h)를 프로젝트에 복사한다. 그리고 AppDelegate.m 구현파일을 아래와 같이 수정한다. 그리고 빌드를 다시 하면 자신이 설정한 주기 마다 별점 평가를 위한 팝업창이 뜬다. #import "Appirater.h" @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDiction..

iDev/iOS Dev 2014.02.23

SpriteKit에 iAd, AdMob 붙이기

* iAd는 UIViewController에만 붙는다. iAd 문서https://developer.apple.com/library/ios/documentation/userexperience/Reference/iAd_ReferenceCollection/_index.htmlGoogle AdMob 문서https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals#ios두 개의 문서를 참조하여 필요한 프레임 워크 및 설정을 하도록 하자. AdMob에서는 Other Linker Flags에서 -ObjC 설정을 안해주면 뭔가 에러를 나니 꼭 문서를 참조해서 설정하도록 하자. 나머지는 대충 코드를 보면 알수 있다. 설명 생략. UIViewController..

iDev/iOS Dev 2014.02.21

Provisioning Profile 상태가 Pending 일 때

오늘 아침 Xcode를 통해서 첫 팀 프로비저닝 프로파일을 생성하니 Pending 상태. Pending이 되니 아무것도 할 수가 없다. 뭔가 문제가 있는 것 같아서 구글링 하니 똑같은 이슈는 엄청나지만 다른 해결책은 딱히 보이지 않음. 지웠다 생성했다를 반복해도 딱히 나아지지는 않음. 예전에 iOS용으로 만들었을 때는 바로 바로 브라우저만 리프레쉬 해주면 Active상태로 변했었는데... Pending 상태니 Game Center가 활성화 안되니 뭔가 아무것도 제대로 할 수 없다. 출근하고 나중에 확인하니 Active 상태로 변해 있다. Pending은 말 그대로 그냥 시간이 약인가 보다.

iDev/Mac Dev 2014.02.19