Libgdx 如何使精灵闪烁一段时间

Libgdx 如何使精灵闪烁一段时间,libgdx,Libgdx,我怎样才能让精灵眨眼一段时间 在我的游戏中,我有一个房子精灵。最初它是一个明亮的。一旦另一个精灵碰到这个房子,房子里的灯就会开始闪烁。就像不断地打开和关闭灯一样 我尝试了不同的方法,但我没能成功。 希望有人能分享他们的想法。您可以这样做: long timeTracker = TimeUtils.millis(); long timeIntervalPerBlink = 50; // in ms bool onOrOff = true; // if true light will on, els

我怎样才能让精灵眨眼一段时间

在我的游戏中,我有一个房子精灵。最初它是一个明亮的。一旦另一个精灵碰到这个房子,房子里的灯就会开始闪烁。就像不断地打开和关闭灯一样

我尝试了不同的方法,但我没能成功。
希望有人能分享他们的想法。

您可以这样做:

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
    }
}

您可以这样做:

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
    }
}

可以使用两个相同的纹理,一个带有光晕,另一个没有光晕。 只需创建两个图像即可满足您的需求

您正在使用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);
但这不是一个好方法,如果您知道使用
着色器
,请根据您的需要使用着色器程序

检查此项和是否存在相同的问题。在我的建议中,这是更好的选择


您也可以使用相同的纹理。

您可以使用两种相同的纹理,一种有光晕,另一种没有光晕。 只需创建两个图像即可满足您的需求

您正在使用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);
但这不是一个好方法,如果您知道使用
着色器
,请根据您的需要使用着色器程序

检查此项和是否存在相同的问题。在我的建议中,这是更好的选择


你也可以用同样的方法。

你用的是box2d灯光吗?不,只使用Scene2d。@Abhishekaryan那么你这里的灯光是什么意思?我只是在讲我想制作的游戏事件。灯光闪烁。这里灯光只是一个真实的单词。与box2d无关。我只使用图像。我正在寻找制作精灵的想法blink@AbhishekAryanwhen你说精灵闪烁你的意思是它会出现然后消失然后出现等等?你使用的是box2d灯光吗?不,只使用Scene2d。@Abhishekaryan那么你这里的灯光是什么意思?我只是在讲我想做的游戏事件。灯光闪烁。这里灯光只是一个真实的单词。与box2d无关。我使用的是仅限图片。我正在寻找制作精灵的想法blink@AbhishekAryanwhen你说精灵在闪烁你是说它会出现然后消失然后出现等等?