如何使精灵闪烁一段时间-LibGdx

时间:2017-04-19 08:55:34

标签: libgdx

如何让精灵闪烁一段时间?

在我的游戏中,我有一个房子精灵。最初它是一个明亮的。一个另一个精灵接触这个房子,房子内的灯将开始闪烁。就像持续打开和关闭灯。

我尝试了不同的方法。我无法使其发挥作用。 希望有人愿意分享他们的想法。

2 个答案:

答案 0 :(得分:1)

您可以这样做:

long timeTracker = TimeUtils.millis();
long timeIntervalPerBlink = 50; // in ms
bool onOrOff = true; // if true light will on, else off

然后在更新部分中执行此操作:

if ( TimeUtils.timeSinceMillis(timeTracker) >= timeIntervalPerBlink )
{
    if ( onOrOff )
    {
        // turn on your light (draw it)
        onOrOff = !onOrOff;  // flip it, so in the next interval the light will be off if its on or on if its off.
        timeTracker = TimeUtils.millis(); //reset the time
    }
}

答案 1 :(得分:1)

你可以使用两个相同的纹理一个发光,另一个不发光。 只需创建两个图像即可达到您的要求。

你正在使用scene2d,所以你可以创建两个像image和image1;

SequenceAction actions=Actions.sequence(Actions.run(new Runnable() {
            @Override
            public void run() {
                image.setVisible(true);
                image1.setVisible(false);
            }
        }),Actions.delay(.2f),Actions.run(new Runnable() {
            @Override
            public void run() {
                image.setVisible(false);
                image1.setVisible(true);
            }
        }),Actions.delay(.2f));

Action myAction=Actions.forever(actions);  //or not forever
Action myAction=Actions.repeat(5,actions);

stage.addAction(myAction);

但这不是一个好方法,如果你知道Shader,那么在这里使用Shader程序来满足你的要求。

检查此videotutorial是否相同。在我的建议中,这是更好的选择。

您也可以使用box2dlight