メモ用サブブログ

子曰わく學びて時にこれを習う。

PSM タップイベントとフリックイベントが同時に発生してしまう場合の対処

PSM SDKのSce.PlayStation.HighLevel.UIFlickGestureDetectorおよびTapGestureDetectorのイベントを同じコンポーネントに設定していた場合、ただのタップのつもりがフリックイベントまで発動してしまうことがある。

フリックイベントのハンドラではイベントオブジェクトからVector2型のオブジェクトが渡ってくる。

タップくらいの動作であまり敏感に反応しないようにFlickEventArgs.Speedが規定値以下ならば反応しないように終了することで対処した。

void HandleFlickDetected(object sender, FlickEventArgs e)
{
    // 速度ベクトルが絶対値で150以下なら発動しないように
    if (Math.Abs(e.Speed.X) < 150){
        return;
    }

PlayStation Mobile SDKプログラミング入門 (Game Developer Books)

PlayStation Mobile SDKプログラミング入門 (Game Developer Books)