EntityModifier 只在 andEngine 中工作一次

Posted

技术标签:

【中文标题】EntityModifier 只在 andEngine 中工作一次【英文标题】:EntityModifier only working once in andEngine 【发布时间】:2013-06-25 13:58:04 【问题描述】:

我正在尝试交替运行这些比例修改器。第一次降低被称为有效。 The Raise 也是第一次起作用。之后都没有工作。调用了 Lower 修饰符,但由于某种原因它没有启动。

Lower = new ScaleModifier(0.5f, 1.0f, 0.8f)
        @Override
        protected void onModifierStarted(IEntity pItem) 
            Log.d(tag, "Lower Started");
            super.onModifierStarted(pItem);
            mIsRaised = false;
        

        @Override
        protected void onModifierFinished(IEntity pItem) 
            Log.d(tag, "Lower Finished");
            super.onModifierFinished(pItem);
            mIsRaised = false;
        
    ;

    Raise = new ScaleModifier(0.5f, 0.8f, 1.0f)

        @Override
        protected void onModifierStarted(IEntity pItem) 
            Log.d(tag, "Raise Started");
            super.onModifierStarted(pItem);
            mIsRaised = true;
        

        @Override
        protected void onModifierFinished(IEntity pItem) 
            Log.d(tag, "Raise Finished");
            super.onModifierFinished(pItem);
            mIsRaised = true;
        
    ;

【问题讨论】:

【参考方案1】:

我用AndEngine已经有一段时间了,但我相信你可能需要调用Lower.reset()和Raise.reset()来重做效果。

修饰符包含一个名为 mFinished 的布尔标志,在调用 reset() 时设置为 false。

【讨论】:

如果我这样做,修饰符只会一遍又一遍地重复。我只希望它在按下按钮后再次播放。 那么你应该只在按下按钮后调用 reset ;) 嘎达玛!这是我在短时间内感受到的最愚蠢的感觉。谢谢。【参考方案2】:

如果您想要精灵的交替动画,请使用 LoopEntityModifier 尝试以下方法:

sprite.registerEntityModifier(new LoopEntityModifier(new SequenceEntityModifier(Lower, Raise)));

【讨论】:

以上是关于EntityModifier 只在 andEngine 中工作一次的主要内容,如果未能解决你的问题,请参考以下文章

我的应用只在美国商店有售,为啥? [关闭]

为啥 Spark2 只在一个节点上运行?

为啥视频没有播放,只在 swift 中显示加载程序

只在哪里查询?

为啥我们只在私人部分给出 Q_OBJECT?

为啥 OpenMP 程序只在一个线程中运行