Libgdx 如何使精灵闪烁X秒?

Libgdx 如何使精灵闪烁X秒?,libgdx,Libgdx,我正在使用libGDX,我想让我的游戏主角在敌人接触时闪烁x秒(失去生命) 有人能告诉我怎样才能把雪碧做成致盲的东西吗?我建议看看这样的东西 使用此技术并调整帧持续时间 walkAnimation = new Animation(0.025f, walkFrames); // #11 当需要开始使动画快速闪烁时。调整“帧持续时间”值 public void setFrameDuration(float frameDuration) 我建议这样做,但如果你必须用…着色。。。。我想这

我正在使用libGDX,我想让我的游戏主角在敌人接触时闪烁x秒(失去生命)


有人能告诉我怎样才能把雪碧做成致盲的东西吗?

我建议看看这样的东西

使用此技术并调整帧持续时间

walkAnimation = new Animation(0.025f, walkFrames);      // #11
当需要开始使动画快速闪烁时。调整“帧持续时间”值

public void setFrameDuration(float frameDuration)
我建议这样做,但如果你必须用…着色。。。。我想这是可行的

private Texture texture;
private TextureRegion region;
private Sprite sprite;
...
texture = new Texture(Gdx.files.internal("image.png"));
region = new TextureRegion(texture, 20, 20, 50, 50);
sprite = new Sprite(texture, 20, 20, 50, 50);
sprite.setPosition(100, 10);
sprite.setColor(0, 0, 1, 1);
...
batch.begin();
batch.setColor(1, 0, 0, 1);
batch.draw(texture, 10, 10);
batch.setColor(0, 1, 0, 1);
batch.draw(region, 50, 10);
sprite.draw(batch);
batch.end();

关键是,如果禁用混合,Alpha将被忽略。

我建议查看类似的内容

使用此技术并调整帧持续时间

walkAnimation = new Animation(0.025f, walkFrames);      // #11
当需要开始使动画快速闪烁时。调整“帧持续时间”值

public void setFrameDuration(float frameDuration)
我建议这样做,但如果你必须用…着色。。。。我想这是可行的

private Texture texture;
private TextureRegion region;
private Sprite sprite;
...
texture = new Texture(Gdx.files.internal("image.png"));
region = new TextureRegion(texture, 20, 20, 50, 50);
sprite = new Sprite(texture, 20, 20, 50, 50);
sprite.setPosition(100, 10);
sprite.setColor(0, 0, 1, 1);
...
batch.begin();
batch.setColor(1, 0, 0, 1);
batch.draw(texture, 10, 10);
batch.setColor(0, 1, 0, 1);
batch.draw(region, 50, 10);
sprite.draw(batch);
batch.end();

关键是,如果禁用混合,Alpha将被忽略。

prgenhard前面的答案将起作用,但我认为这还不够,如果您不小心使用它的话

可以使用TweenEngine使用不同的函数插值alpha值。 这真的很酷

你们可以在精灵或演员的阿尔法上设置这些值,从而轻松实现闪烁效果

您可以在此处阅读更多信息:

应该足够了。 而且它还可以很容易地在Libgdx引擎中使用


希望这能有所帮助。

prgenhard前面的答案会有用,但如果你不小心使用它,我认为这还不够

可以使用TweenEngine使用不同的函数插值alpha值。 这真的很酷

你们可以在精灵或演员的阿尔法上设置这些值,从而轻松实现闪烁效果

您可以在此处阅读更多信息:

应该足够了。 而且它还可以很容易地在Libgdx引擎中使用


希望这能有所帮助。

这是我的解决方案,我使用它的目的与您描述的完全相同(角色受伤时眨眼)

然后只需将其添加到
draw()
方法中(我假设您有单独的绘制角色的方法,您可以在屏幕
draw方法中调用该方法),在绘制要闪烁的精灵之前

        if (blinker.shouldBlink(delta))
            return;

这是我的解决方案,我使用它的目的与您描述的完全相同(受伤时闪烁的角色)

然后只需将其添加到
draw()
方法中(我假设您有单独的绘制角色的方法,您可以在屏幕
draw方法中调用该方法),在绘制要闪烁的精灵之前

        if (blinker.shouldBlink(delta))
            return;

你的意思是闪烁???我的意思是闪烁或更改alpha值你的意思是闪烁???我的意思是闪烁或更改alpha值谢谢,但我有4种状态(跳跃、失败、运行和正常),如果我这样做,我将需要制作大量只用于闪烁的图像。@Jovan你可以为所有状态设置一个空白状态。但实际上,这样做的成本可能比改变颜色要低。但是就像我前面说的
sprite.setColor(0,0,1,1)(最后一个值)为alpha。只是这个方法维护起来真的很烦人。谢谢,但是我有4种状态(跳跃、失败、运行和正常),如果我使用这个方法,我将需要制作很多只用于闪烁的图像。@Jovan你可以为所有这些设置一个空白状态。但实际上,这样做的成本可能比改变颜色要低。但是就像我前面说的
sprite.setColor(0,0,1,1)(最后一个值)为alpha。只是这种方法维护起来很烦人。