CocosBuilder 2.0 rc2에서 3.0 alpha로 Migration

 지난 포스팅에서 cocos2d-x 2.0.1에서 2.1.0으로 마이그레이션 하면서 코코스빌더쪽에서 문제가 발생했었죠.

WARNING! Incompatible ccbi file version (file: 2 reader: 4)

 위와 같은 로그와 함께말이죠. 일단 위 로그 해결은 간단히 최신 코코스빌더에서 기존에 작업했던 CCB Project를 로딩 후 Purblish만 한번 해주면 해결은 됩니다. 그외 런타임에러가 발생한 것을 정리해봅니다.

이미지 파일 파싱 오류
 Get data from file(title.png) failed!가 발생했습니다.


 소스를보면 spriteFile를 최종적으로 만드는데 있어서 pCCBReader->getCCBRootPath()를 사용합니다.

CCBReader* pCCB Reader = new CCBReader( pNodeLoaderLibrary );
pCCBReader->autorelease();
///< ccb 리소스가 있는 루트 디렉터리를 설정한다.
pCCBReader->setCCBRootPath( "ccb/" );

 위와같이 setCCBRootPath를 추가해서 해결합니다.


CCB 내부에 자식으로 CCB를 가지고 있을 때 파싱 오류
  위와같이 스테이지 선택 관련 CCB 처리중에 Get data from file(xxx.plist) failed! 오류가 뜨더군요. 계속진행해봐야 잘못된 포인터에 걸립니다.

 호출스택입니다. CCB 내부에서 또다른 CCB 파일을 자식으로 처리할 때 생긴 에러입니다. CCNodeLoader::parseProperties 할때 kCCBPropTypeCCBFile 이면 파싱중에 CCBReader의 새로운 인스턴스를 만들게 됩니다.

 이렇게 말이죠. 이 과정에서 CCBRootPath가 설정되지 않아서 오류가 발생했습니다. 기존 리더인 pCCBReader로부터 가져오도록 아래와 같이 추가해줍니다.

ccbReader->setCCBRootPath( pCCBReader->getCCBRootPath().c_str() );

 위 런타임 오류들이 마이그레이션할 때만 발생하는지 아니면 코코스빌더 3.0 알파만 가지고 처음부터 만들어도 이러는지는 모르겠네요. 전자라면 좋겠지만, 만약 후자라면 cocos2d-x 쪽 CCB관련 버그거나 CocosBuilder쪽에 아직 버그가 있겠죠.

 이렇게해서 런타임 에러는 해결했습니다. 하지만 좌표문제가 발생하네요. 일단 여기서 마무리합니다.

댓글

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.