안녕하세요~


아이폰용 cocos2d를 사용해본적이 있는 초보개발자입니다.


안드로이드에서도 맵타일을 써볼려고 타일에디터로 tmx 만들어서 cctiledmap으로 불러 오는데


자꾸 에러가 나네요


CCTMXLayer.setUpTiles안에 gid를 뽑아 오는 부분에서 인덱스가 벗어나는지 잘 못 푸는것 같은데요

for (int y=0; y < layerSize.height; y++) {
            for (int x=0; x < layerSize.width; x++) {
                int pos = (int) (x + layerSize.width * y);
               
                int gid = tiles.get(pos);

                // gid are stored in little endian.
                // if host is big endian, then swap
                // Java is big endian
                // if( o == CFByteOrderBigEndian )
                gid = CCFormatter.swapIntToLittleEndian(gid);

                // XXX: gid == 0 --> empty tile
                if( gid != 0 ) {
                    appendTileForGID(gid, CGPoint.ccp(x,y));

                    // Optimization: update min and max GID rendered by the layer
                    minGID_ = (gid < minGID_? gid : minGID_);
                    maxGID_ = (gid > maxGID_? gid : maxGID_);
                }
            }
        }



웃긴게 직접 만든 tmx나 아이폰에서 썼던 tmx는 같은 에러가 나고


안드로이드 cocos2d 샘플 안에 tmx파일을 뽑아 쓰면 에러가 없이 잘 나오거든요


둘 차이점이라면 tmx 상에


<tileset name="Untitled" firstgid="1" tilewidth="64" tileheight="37" spacing="2" margin="2">

name이 제일 앞에 있다  (직접 만든건 두번째에 name에 있어요)


  <image source="iso-test2.png"/>

 이미지 소스의 width height가 없다 (직접 만든건 존재) 되는 tmx에 이미지 크기 지정해줘도 정상 작동 차이 무관한듯..


  <data encoding="base64" compression="gzip"> 압축이 zlib가 아니다 근데 qzip을 zlib로 해도 잘 나오더군요 (무관한듯)


되는 tmx를 편집해서 제것으로 쓰자면 테스트야 되지만 실제 쓰일 타일크기도 다르고 해서 못 할거 같은데


혹시나 이런 경우 접해보신분들의 도움을 기다립니다.


(추가) 아이폰용 예제 tmx도 불러 오니 잘 되네요  타일에디터 버전이 높아서 그런건가 직접 만든거만 이상하게 에러가 ㅠ