【问题标题】:Making a sprite jump when user taps on the screen?当用户点击屏幕时让精灵跳跃?
【发布时间】:2012-01-12 01:27:46
【问题描述】:

我正在使用 andengine 来实现一个可以使用它在屏幕上拖动的精灵。

所以我想做的是当用户点击屏幕上的任何位置时,精灵会跳转。

或向上移动然后向下移动。

使用 andengine 进行此操作的最佳方法是什么?

【问题讨论】:

    标签: java android andengine


    【解决方案1】:

    这应该可行:

    @Override
    public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
        if(pSceneTouchEvent.isActionDown()) { //Jump only if the user tapped, not moved his finger or something
            final Entity playerEntity = ...;//Get player entity here.
    
            final float jumpDuration = 2;
            final float startX = playerEntity.getX();
            final float jumpHeight = 100;
    
            final MoveYModifier moveUpModifier = new MoveYModifier(jumpDuration / 2, startX, startX - jumpHeight); // - since we want the sprite to go up.
            final MoveYModifier moveDownModifier = new MoveYModifier(jumpDuration / 2, startX + jumpHeight, startX);
            final SequenceEntityModifier modifier = new SequenceEntityModifier(moveUpModifier, moveDownModifier);
    
            playerEntity.registerEntityModifier(modifier);
            return true;
        }
        return false;
    }
    

    请记住,如果您将使用它,那么每当有 ACTION_DOWN 事件时,您可能会错过一些其他事件处理程序(例如,如果您有屏幕按钮,它们将永远不会处理该事件)。

    处理它的方法是使用添加您想要接收触摸事件的任何其他实体作为场景的触摸区域,Scene.registerTouchArea(ITouchArea) 这样做。 Sprites 和 AnimatedSprites 实现了ITouchArea,所以你可以使用它们。

    当一个Scene收到一个TouchEvent要处理时,它会先让你注册的所有ITouchArea处理它,如果没有人消费它,它会尝试onSceneTouchEvenet方法。

    【讨论】:

      【解决方案2】:

      看起来您必须设置一个侦听器,如本教程中所示:http://www.andengine.org/forums/tutorials/updating-sprites-objects-listeners-t386.html 然后可能使用移动修饰符,如本文所示: how to move sprite object using AndEngine (Android) 我希望你能弄清楚你的问题。 ;)

      祝你好运-利贾普

      【讨论】:

      • 谢谢,但我实际上已经为精灵做了这个,但现在我希望它在用户不触摸精灵时点击屏幕时“跳转”。
      • 对不起,我对andengine的了解很有限,相信Jong的回答就足够了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多