Cocos2d-xでジェスチャー取得
はじめまして初投稿です。
よろしくおねがいします
Cocos2d-xでタップとかロングタップとかスワイプなどのジェスチャーを取得したいと思います。
Cocos2d-xにはデフォルトだとジェスチャーを取得するイベントリスナーが存在しません。
タップやスワイプの取得について軽くググると下記のXTLayerが出てきました。
http://www.cocos2d-x.org/boards/6/topics/23011
が、、、、
このXTLayerは2系で書かれていますしLayer拡張です。
これを参考に3系のコードに書き換えてもいいのですが、3系ではタッチイベントはLayerではなくEventListenerで取得しますからこっちに合わせたいところ。
ということで、自分で書くことにしました。
##仕様とか
そもそもタップとはなんなのか。
とりあえずそれぞれこんな感じに定義しました。
####・タップ
タッチ時間がロングタップ閾値時間より短く、タップ中の移動距離がスワイプ閾値距離より短い場合。
####ロングタップ
タッチ中の移動距離がスワイプ閾値距離を超えない間に、タッチを開始してからロングタップ閾値時間以上経過した場合。
####・スワイプ
ロングタップ閾値時間内にタッチ中の移動距離がスワイプ閾値距離を超えた場合。
スワイプの方向は上下左右の4方向。
##実装
コードはこちら。
https://github.com/Poowww/EventListenerGesture
テスト環境はCocos2d-x3.4です。
3系ならどれでも動くと思うのですが、もし動かなかったりバグってたりしたら教えて下さい。
##使い方
こんな感じでどうでしょうか
ぼくのかんがえたさいきょうのじぇすちゃーりすなー募集中です。