是否有可能使更新方法仅在没有标志的情况下触发一次操作? LibGDX

时间:2017-06-03 15:49:22

标签: java libgdx

在LibGDX的更新方法中,是否可以在被告知时仅执行一次操作,而不执行此操作? :

private boolean shouldBeFired = false;
    @Override
    public void update(float dt) {
        if(shouldBeFired)
            fire();
            shouldBeFired = false;
}

1 个答案:

答案 0 :(得分:0)

如果问题的数量是问题,您可以使用int或甚至更优,您可以使用enum满足您的要求。

enum MyFlag{
    NONE,FIRST,SECOND,THIRD,FOURTH
}

MyFlag myFlag=MyFlag.NONE;

@Override
public void update(float dt) {
    if(myFlag==MyFlag.FIRST) {
        fire();
        myFlag=MyFlag.values()[myFlag.ordinal()+1]; // incremental change

        //or manually change

        myFlag=MyFlag.NONE;
    }
}

同一屋檐下的恒定标志数量是实现最佳发展的良好选择。