안녕하세요~ 개발자 여러분
오늘도 저의 삽질은 계속 되네요 하하-_-
cocos2d-x로 xcode에서 코딩을 하여 안드로이드에 올려보고 있는데요
아이팟이나 아이폰시뮬레이터로 터치 좌표를 찍어 보니 480x320 모드로 찍힙니다.
단순히 scalefactor를 2로 설정하거나 좌표 관련 계산을 모두 x2하기에는 좀 무리가 있거든요
터치 좌표를 맵타일 좌표로 변환하는데 맵이 스크롤이 되므로 거기에 맞게 더하거나 빼줘서
다시 좌표에 맞게 뿌리는 등등 결과적으로는 또 안드로이드에서 테스트되어야 하고
플랫폼 마다 계산법을 분기 시킬수야 있겠지만
속시원히 아이폰 환경에서도 실제 디바이스 좌표체계로 싹 바뀌면 편할거 같은데
혹시 이런 문제 해결방법이 있을까요?
float scaleFactor = 2.0f;
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
scaleFactor = 1.0f; //(안드로이드는 패스)
#endif
findTile = CCSprite::spriteWithFile("iso.png", cocos2d::CCRect(0,0,64/2*scaleFactor,32/2*scaleFactor));
....
CCPoint HelloWorld::transToTilePos(CCPoint realPos){
CCTMXTiledMap *mapNode = (CCTMXTiledMap*)this->getChildByTag(kTagMap);
CCPoint pos = ccpSub(realPos, mapNode->getPosition());
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
pos = ccpMult(pos,2.0f); //(안드로이드는 패스)
#endif
..
}
일단 임의로 이렇게 처리하고 테스트 중입니다 쩝 ㅡㅡ;
}




앵커와 포지션 위치 바꾸어서 맞추지 않나요?ㅎㅎ