为两个精灵和引擎创建一个由两个修饰符组成的序列

Posted

技术标签:

【中文标题】为两个精灵和引擎创建一个由两个修饰符组成的序列【英文标题】:create a sequence of two modifiers for two sprite andengine 【发布时间】:2013-05-28 09:17:43 【问题描述】:

我正在尝试创建两个精灵并在每个精灵上应用一个 RotationAtModifier。我希望能够按顺序运行两者,即 Sprite1 上的 Modifier1 和 Sprite2 上的 Modifier2 之后。有什么办法可以做到这一点。我尝试了序列和循环修饰符,但我认为它们可用于为单个精灵应用多个修饰符。如果我错了,请纠正我。

final RotationAtModifier rotMod1 = new RotationAtModifier(50, 0, 90, 830, 150)

@Override
protected void onModifierStarted(IEntity pItem) 
    getEngine().runOnUpdateThread(new Runnable()
    public void run()
        if(! Sprite1.isVisible())
            Sprite1.setVisible(true);       
        
    );


@Override
protected void onModifierFinished(IEntity pItem) 
    getEngine().runOnUpdateThread(new Runnable()
    public void run()
        Sprite1.setVisible(false);  

        
    );

;
RotationAtModifier rotMod = new RotationAtModifier(50, 0, 90, 830, 150)

@Override
protected void onModifierStarted(IEntity pItem) 
    getEngine().runOnUpdateThread(new Runnable()
    public void run()
        if(! Sprite2.isVisible())
            Sprite2.setVisible(true);       
        
    );


@Override
protected void onModifierFinished(IEntity pItem) 
    getEngine().runOnUpdateThread(new Runnable()
    public void run()
            Sprite2.setVisible(false);
            Sprite1.registerEntityModifier(rotMod1);
        
    );

;

mScorpius.registerEntityModifier(rotMod);

【问题讨论】:

你是对的“单个精灵可以包含多个修饰符”。但是如果你想要一个接一个的动画序列。然后你必须为每个修饰符创建两个方法。一个调用修饰符完成方法调用另一种方法,反之亦然。 【参考方案1】:

在Modifier1的onModifierFinishedBlock中的Sprite2上设置Modifier2

【讨论】:

以上是关于为两个精灵和引擎创建一个由两个修饰符组成的序列的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Qt 中使用两个键修饰符设置 3 键序列快捷键?

匿名对象 内部类 包的声明与访问 访问修饰符

没有 STRICT 修饰符,函数执行得更快?

为啥 BEM 经常使用两个下划线而不是一个下划线作为修饰符?

部分类和访问修饰符问题

java:包继承,访问修饰符