【问题标题】:AndEngine stop animated sprite when destination reachedAndEngine 在到达目的地时停止动画精灵
【发布时间】:2014-06-11 14:30:17
【问题描述】:

我正在使用 AndEngine 开发一个 Android 项目。我有一个工作动画精灵,它移动到屏幕上的触摸位置。我的问题是,一旦精灵到达目的地,我似乎无法弄清楚如何停止动画。这是我的精灵移动和动画代码。提前感谢您的帮助。

编辑新代码---

@Override
public boolean onSceneTouchEvent (Scene m_Scene, TouchEvent pSceneTouchEvent)   {
    if (pSceneTouchEvent.getAction() == TouchEvent.ACTION_UP) {
        float touchX = pSceneTouchEvent.getX();
        float touchY = pSceneTouchEvent.getY();
        float[] minerLoc = sprMiner.getSceneCenterCoordinates();
        float minerX = minerLoc[0];
        float minerY = minerLoc[1];

        MoveModifier sprModifier = new MoveModifier(5, minerX, touchX, minerY, touchY)
        {
                protected void onModifierStarted(IEntity pItem)
                {
                        super.onModifierStarted(sprMiner);
                        // Start Walking Animation
                        sprMiner.animate(new long[] {150, 150, 150, 150, 150, 150, 150, 150}, 0, 7, true);
                }

                protected void onModifierFinished(IEntity pItem)
                {
                        super.onModifierFinished(sprMiner);
                        //Stop Walking Animation
                        sprMiner.stopAnimation(0);
                }
        };
        sprMiner.registerEntityModifier(sprModifier);
    }

    return false;
}

【问题讨论】:

    标签: java android animation andengine


    【解决方案1】:

    修饰符监听器:

    有时您需要在特定时刻执行某些代码,例如在开始或结束修饰符时,要执行此操作,您只需在创建新修饰符时重写一些方法。为此,请遵循以下使用的方法:

    RotationModifier yourModifier = new RotationModifier(3, 0, 360)
    {
            @Override
            protected void onModifierStarted(IEntity pItem)
            {
                    super.onModifierStarted(pItem);
                    // Your action after starting modifier
            }
    
            @Override
            protected void onModifierFinished(IEntity pItem)
            {
                    super.onModifierFinished(pItem);
                    // Your action after finishing modifier
                    //STOP ANIMATION HERE!!!
            }
    };
    
    yourEntity.registerEntityModifier(yourModifier);
    

    来源:http://www.matim-dev.com/entity-modifiers.html

    【讨论】:

    • 老兄!太棒了。我一直在寻找正确的方法来做到这一点。这对我来说现在更有意义了。我已经习惯了编写应用程序代码,游戏逻辑对我来说还有些陌生。非常感谢。
    • 查看博客,有很多有用的文章。祝你游戏好运
    • 最后一个问题。我已经重做代码以包含您的建议,我只是不确定如何触发 onModifierStarted 和 Finished。更新 - 是实体修饰符监听器吗?
    • 搞定了。我现在唯一拥有的是精灵在移动开始时有点跳跃,并从实际屏幕触摸的位置略微结束。几乎就好像代码获取的坐标与实际场景略有不同。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2011-11-15
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    相关资源
    最近更新 更多