Programming/Android

cocos2d android 해상도가 상이해서 터치좌표가 일치하지 않았던 문제 해결

커널제로 2013. 7. 30. 11:51

public boolean ccTouchesEnded(MotionEvent event)

{

...


event.getX();

}


위의 함수에서 event.getX()를 하면 디바이스의 터치좌표를 가져오게 되는데


회사에서 만드는 앱의 경우 800 * 600 으로 개발이 되었기 때문에

이 범위를 넘어서 값을 가져올 경우 혼란이 발생한다.


모든 sprite는 위의 범위에 존재하므로 터치 좌표도 위의 값에 포함되어야 한다.


float newX = CCDirector.sharedDirector().convertToGL(CGPoint.make(event.getX(), event.getY())).x;

float newY = CCDirector.sharedDirector().convertToGL(CGPoint.make(event.getX(), event.getY())).y;


위와 같이 convertToGL 함수를 이용해서 x, y 값을 재설정 해 주었다.


앱의 해상도 설정은

먼저 포스팅한 http://grosh.tistory.com/168 을 참조하면 된다.