0

在我使用 AndEngine 的游戏应用程序中,我试图检测按钮 Sprite 上的滑动动作以在手指在按钮 Sprite 上方时放大按钮,并在手指从 Sprite 上滑动时将比例设置回 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 回答