如何在经过一定时间后删除PointLight

时间:2014-05-07 08:02:57

标签: libgdx box2d delay timing light

在我的游戏中,角色可以射击子弹,每次射击子弹,枪口旁边都会出现枪口闪光。枪口闪光灯是一个box2d PointLight。以下是拍摄的相关代码:

    if (MRInput.isPressed(MRInput.BUTTON2)) {
          PointLight muzzle = new PointLight(handler, 500, new 0.1f, 0.6f, 0.6f, 1), 10 / 100,
          player.getPosition().x + (30 / 100), player.getPosition().y);
    }

我是否应该制作一系列枪口闪光并在经过一定时间后在游戏渲染循环中移除它们,或者这可以在输入处理程序中以更简单的方式完成(当然这一直在更新)?

我有点迷失时间事件,所以非常欢迎任何有关如何解决这个问题的建议和例子,谢谢!

1 个答案:

答案 0 :(得分:0)

解决:

1)在我的Game类中声明了这些字段:

private float muzzleTime;
private boolean muzzleTimeRunning;

2)在原始问题中描述的拍摄动作中添加了这些声明:

muzzleTime = 0
muzzleTimeRunning = true;

3)将此添加到我的游戏更新()方法中:

        if (muzzleTimeRunning == true) {
            muzzleTime += dt;
            if (muzzleTime >= 0.01f) {
                muzzle.remove();
                muzzleTimeRunning = false;
            }
        }