coocs2d-xでの座標系について

2015年1月29日 engineering

cocos2d-xの座標系でつまずいたのでメモ。

タッチイベントを取得する際に,getLocationInViewで判定していたらどうも思い通りの挙動にならない現象が起きてた。 具体的にはy座標が反転してしまうようだった。

結論からいうと、getLocationInViewでなく、getLocationを用いれば左下からの座標で取得できた。

調べると、基本的にcocos2d-xで用いられているのは、OpenGL座標系で「左下」が原点らしい。

cocos2d-xのリファレンスをみると、座標系を取得するメソッドとして、TouchクラスのgetLocationgetLocationInViewがある。

(以下リファレンスから引用)

Point getLocation() const

  returns the current touch location in OpenGL coordinates.

Point getLocationInView() const

  returns the current touch location in screen coordinates.

なるほど。座標系の違いでメソッドが分かれているのか。

やっぱりリファレンスちゃんと見なきゃだめだなと思いました。