메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

1.  윈도우 한정 명령어는 사용할 수 없다.

너무도 당연한 문제.


2. 한글 인코딩 문제

최신 VS을 사용하면 겪지 않을 문제일지 모르겠지만,

보통은 h나 cpp를 ANISI형식 문서로 만들 것이다.

XCode에서는 Unicode나 UTF-8 형식을 쓰므로 소스에 박아둔 한글은 전부 깨지게 될 것이다.

그렇지 않더라도 역시 스트링은 외부 파일로 전부 빼두고 쓰는 게 편하다.


2-1. \n 문제

앞과 마찬가지일지 모르겠는데,

윈도우에서는 \n가 1바이트로, iOS에서는 2바이트로 처리되는 경우가 있다.

이건 플랫폼에 따라 처리 방식을 달리 해줘야 한다.


3. 파일 경로 문제

윈도우의 파일 경로와 iOS의 파일경로가 달라져서 파일을 찾지 못한다.

이건 CCFileUtils를 이용해서 해결할 수 있다.

단순히 데이터 파일 외에도 코코스 객체들을 생성할 때 쓰는 파일 경로도 모두 CCFileUtils를 통해야 문제가 없다.

그리고 iOS에서 Resorce를 추가할 때 Group이 아닌 Folder로 추가해야 한다.

Group으로 추가되었을 땐 아이콘이 노랑색, Folder가 추가되었을 때는 아이콘이 파랑색이 되어 있을 것이다.


4. 대소문자 구분

윈도우에서는 대소문자 구분을 하지 않지만, iOS에서는 한다.

예를 들어 폴더에 face.png라는 파일이 있는데,

CCSprite::create("Face.png") 와 같이 적었다면,

윈도우에서는 잘 돌아가지만 iOS에서는 파일을 찾을 수 없다고 나올 것이다.

소문자나 대문자나 하나로 통일해서 쓰는 게 좋다.


그 외 정말 사소하게 iOS는 까다롭다.

오히려 윈도우가 까다로웠다면 윈도우에서 잘 돌아가게 만들면 쉽게쉽게 포팅할 텐데,

그 반대인지라 윈도우에서 잘 만들어 둬도 iOS에서 한 두가지 문제가 생긴다.

하지만 몇번 대응하다 보면 다 해결할 수 있기 때문에 초반에만 버벅일 뿐 크게 문제는 안 된다고 본다.


이 기록은 혹시나 과거 문제 사례를 잊었을 때를 대비해서 남겨둔다.

태그 :
조회 수 :
543
등록일 :
2013.08.26
23:29:00 (*.75.88.173)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=702241
List of Articles
번호 제목 글쓴이 조회 수 추천 수 날짜 최근 수정일
10 cocos2d-x 2.2.2 윈도우 환경 기본 메모리 누수 똥똥배 640   2014-03-10 2014-03-11 03:51
cocos2d-x 2.2.2를 윈도우에서 실행시키고 나서 종료하면 기본으로 4바이트의 메모리 누수가 발생한다. 이건 CCScriptEngineManager가 원인인데 CCObject들은 delete를 실행할 때마다 CCScriptEngineManager의 sharedManager를 호출하기 때문이다. 결국 모든 C...  
9 cocos2d-x 2.2.2 UILabelBMFont 메모리 누수 해결법 [2] 똥똥배 783   2014-03-10 2014-05-31 19:30
만약 CocoStudio로 UI를 만든 후 GUIReader를 써서 지정 폰트를 불러오면 엔진 버그로 인해서 메모리 누수가 생긴다. 이걸 고치려면 LabelBMFont.cpp를 아래와 같이 수정해야 한다. void LabelBMFont::setFntFile(const char *fileName) { if (!fileName || st...  
8 Cocostudio의 ActionNode 메모리 누수 해결법(cocos2d-x 2.2.2) [2] 똥똥배 776   2014-03-09 2014-05-31 19:26
Cocostudio로 액션을 만들고 액션매니저를 이용해서 ActionManager::shareManager()->playActionByName 아래와 같이 실행을 해주면 액션이 실행되는 경우 메모리 누수가 발생한다. (액션을 실행하지 않았을 때는 메모리 누수 없음) 이 메모리 누수를 없애려면 ...  
7 cocos2d-x CCMenuItem 자신을 지웠을 때 생기는 에러 똥똥배 442   2013-09-13 2013-09-13 07:28
CCMenuItem으로 메뉴를 생성하고 타겟과 셀렉터를 정해서 그 명령 안에서 자신을 지우게 되었을 경우 activate() 안에서 에러가 발생한다. 아직 activate()를 실행해야 되는데 remove 당했기 때문에 생긴 문제인데, 구글에서 검색해 본 결과, https://github.c...  
6 cocos2d-x Clipping Layer 수정 똥똥배 670   2013-09-10 2013-09-13 07:28
흔히 구글에서 찾아보면 다음과 같은 Clipping Layer 소스를 찾을 수 있다. CCEGLView::sharedOpenGLView()->setScissorInPoints( // scissorRect is the rectangle you want to show. clippingRegion.origin.x + getPosition().x, clippingRegion.origin.y + ...  
» cocos2d-x 게임을 iOS에 이식할 때 생기는 문제들 똥똥배 543   2013-08-26 2013-09-13 07:28
1. 윈도우 한정 명령어는 사용할 수 없다. 너무도 당연한 문제. 2. 한글 인코딩 문제 최신 VS을 사용하면 겪지 않을 문제일지 모르겠지만, 보통은 h나 cpp를 ANISI형식 문서로 만들 것이다. XCode에서는 Unicode나 UTF-8 형식을 쓰므로 소스에 박아둔 한글은 ...  
4 cocos2d-x에서 schedule_selector 정의 변화 [1] 똥똥배 521   2013-08-19 2013-09-13 07:28
예전에 적은 글에는 터치와 업데이트를 활성화 시키는 법을 적어놨다. http://hondoom.com/zbxe/index.php?mid=study&document_srl=385031 이글은 cocos2d-1.0.1-x-0.9.1를 기준으로 적은 글인데, 최신버전으로 오면서 update의 정의에 대해서 변화가 생겼...  
3 cocos2d-x 외부파일을 이용한 한글 처리 [1] 똥똥배 1938   2013-07-08 2013-09-13 07:29
cocos2d-x에서는 한글을 그냥 출력하려고 하면 깨져서 나온다. 이유는 VS 편집기에서는 ANSI코드 한글을 사용하는데, cocos2d-x에서 문자는 UTF-8 형식을 쓰기 때문이다. 이것을 해결하는 간단한 방법은 wchar_t wmsg[] = L"한글"; char msg[128]; WideChar...  
2 cocos2d의 가비지 컬렉터 똥똥배 1962   2012-02-07 2013-09-13 07:29
오늘에서야 안 것인데, cocos2d에는 가비지 컬렉터가 존재한다. 스프라이트를 생성하고 Node에 연결하지 않으면, 얼마 후 가비지 컬렉터가 이를 지워 버린다. 스프라이트를 생성하면 바로 Node에 연결해줘야 한다는 것이다. 내 경우, 게임 중에 메모리 할당을...  
1 cocos2d-x 터치와 업데이트 활성화 시키기 똥똥배 10656   2011-10-27 2013-09-13 07:29
cocos2d와 달리, 윈도우 환경에서 cocos2d-x 프로그램을 짜보면 상속을 받았음에도 update, ccTouchesBegan 등의 함수가 작동되지 않음을 알 수 있다. 터치 해결법: OnEnter와 OnExit를 추가하고, 다음 같이 적어준다. void HelloWorld::onEnter() { //단일 ...