0

AndEngineを使用するゲームアプリでは、ボタンスプライト上でのスワイプモーションを検出して、指がボタンスプライト上にあるときにボタンを拡大し、指がスプライトからスワイプしたときにスケールを1.0fに戻します。意味:

  • ボタン領域の外側を指で下ろします
  • ボタンをスワイプします(ボタンのサイズは大きくなります)が、指を下に向けたままにします
  • ボタンをスワイプし続けると、ボタンは元のスケールに戻ります。

私は以下を試しました:

myButton = new Sprite(posX, posY, resourcesManager.rightButtonRegion, vbom) {


        @Override
        public boolean onAreaTouched(final TouchEvent pAreaTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
            switch (pAreaTouchEvent.getAction()) {
            case TouchEvent.ACTION_DOWN:
                this.setScale(1.25f);
                break;

            case TouchEvent.ACTION_UP:
                this.setScale(1.0f);
                break;

            case TouchEvent.ACTION_MOVE:
                this.setScale(1.0f);
                break;

            case TouchEvent.ACTION_OUTSIDE:
                this.setScale(1.0f);
                break;

            }
            return true;
        }
    };

しかし、ボタンの外側でスワイプを開始し、ボタンの上で指を動かすと、ボタンのサイズが拡大されません。この効果を達成する方法へのポインタを高く評価してください。SurfaceViewを使用したAndengine以外のソリューションがある場合は、それについても意見をいただければ幸いです。

4

1 に答える 1

4

スケールをに設定するだけですTouchEvent.ACTION_DOWN。タッチ領域にスライドしても、そのACTION_DOWN領域で押し下げなかったため、登録されません。その領域に移動しただけです。case TouchEvent.ACTION_MOVE:タッチシーケンスがでなかった場合は、その領域に最初に移動したときにスケールアップするチェックを入れることができますACTION_DOWN

それがうまくいかない場合は、onGenericMotionEvent(MotionEvent)他のタイプのモーションイベント情報を配信するようなものを使用できます。

于 2013-03-16T04:43:10.837 に答える