2009/11/05

SIO2 - マルチタッチを検出する

SIO2 Interactive でマルチタッチを使う方法をまとめます。


マルチタッチを有効にする

少しはまりましたが、ここだけ押さえれば後は普通です。

iPhone Simulatorのマルチタッチが効かないに書いてあるとおり、Interface Builder で Multiple Touch にチェックを入れます。こうしないと、座標が 1 個しか取れないようです。

やり方を詳しく書くと


  1. MainWindow.xib を Interface Builder で開く

  2. Tools -> Attributes Inspector で View Attributes パネルを開く

  3. View タブの Interaction - Multiple Touch にチェックを入れる





SIO2 アプリケーションからの見え方


templateScreenTap()
タップされたとき、指が離れたときに呼ばれる。第二引数に SIO2_WINDOW_TAP_UP または SIO2_WINDOW_TAP_DOWN が来るようです。

templateScreenTouchMove()
ドラッグされたときに呼ばれる。

sio2->_SIO2window->n_touch
現在検出されているタッチ数。

sio2->_SIO2window->touch[i]
各タッチ座標。float x, float y を持つ vec2 型。

sio2->_SIO2window->n_tap
タップ回数。ダブルクリックだと 2, トリプルクリックだと 3, 以下同様。ちょっと(0.7 秒くらい?)時間を空けたり、ある程度離れた部分をタップしたりすると 0 にクリアされます。