2012. 6. 11. 10:21ㆍ프로그래밍/Cocos2dX
Cocos2D-X를 사용해서 iOS에서 작성한 게임을 c/c++소스사용해서 안드로이드로 포팅할때
일반적인 png등은 정상적으로 로딩된다 하지만 그 외의 다른 방식으로 리소스 파일들에 접근되지 않을 경우 해결 방법은 다음과 같습니다. 그 어떠한 경로를 구해서 접근해봐도 null갑싱 넘어오는 이는 충분히 이해가 가는 부분이다.
cocos2d::CCFileUtils::fullPathFromRelativePath()를 이용해봐도 넘겨준 파일이름만 넘어올 뿐 fopen으로 사용할 수 없습니다. 그리고 cocos2d::CCFileUtils::getWriteablePath()를 사용해봐도 정상적으로 사용되지 않습니다.
또한 Cocos2D-X의 cocos2d-1.0.1-x-0.13.0-beta버전에서는 fullPathFromRelativePath()의 Error로 인해서 ""값이 넘어온다고 합니다. 하지만 현재는 버그가 수정되어서 그런지 내부 소소르를 봐도 정상적으로 수정된 듯 합니다.
따라서 다음과 같은 부분을 한번 확인해 보시고 사용해 보시면 될듯 합니다.
if ((fp = fopen(path, "r")) == NULL)를 사용하지 말고 getFileData()를 사용해야 정상적으로 접근이 가능합니다.
원문의 내용 일부입니다.
You can not read a file using fopen() on android, because the files are packed into apk, which is a zip file. You can use CCFileUtils::getFileData().
위의 내용은 안드로이드의 경우 일반 파일이 아닌 zip파일(apk)로 포장되있기에 일반적인 fopen으로는 읽을수가 없습니다.
'프로그래밍 > Cocos2dX' 카테고리의 다른 글
Cocos2d-x에서 java의 signature of a method를 알아내기 (0) | 2012.06.21 |
---|---|
Cocos2d-x활용해서 Java에서 C++ 함수 호출하기 (0) | 2012.06.15 |
Flurry를 이용한 어플 사용자 통계분석하기. (0) | 2012.06.14 |
cocos2D-X에서 안드로이드 프로젝트 만들기. (13) | 2012.06.07 |
cocos2d-x eclipse error: 'glGenFramebuffersOES' was not declared in this scope (0) | 2011.12.22 |