当前位置: 首页 > 知识库问答 >
问题:

libGDX:根据用户的输入更改PNG的颜色

林弘文
2023-03-14

我希望你能帮助我。我有一个游戏,其中透明纹理加载,并应根据用户的选择(十六进制代码)在游戏开始时上色。

我的游戏将在游戏人物的位置(居中)放置平铺。瓷砖是50x50,我的png也是。它有一个透明的背景,我的图形的矢量有透明的东西,应该是彩色的。它看起来像这样:

我正在使用libGDX引擎,我真的很沮丧,因为这个问题。感谢您的帮助!

非常感谢!

共有1个答案

濮阳奇逸
2023-03-14

要在LibGDX中以编程方式更改颜色,您需要使用具有白色像素的图像(png或jpg),您可以将图像分成两部分,一部分用于不希望更改颜色的部分,另一部分用于不希望更改颜色的部分做。这里有一个例子:

代码:

public class ExampleGame extends InputAdapter {

    SpriteBatch batch;
    Color crownColor;

    public ExampleGame() {
        batch = new SpriteBatch();
        crownColor = Color.WHITE;
    }

    @Override
    public boolean touchDown(int screenX, int screenY, int pointer, int button) {
        crownColor = Color.RED;
        return false;
    }

    public void render(TextureRegion player, TextureRegion crown) {
        batch.begin();
        batch.setColor(Color.WHITE); // Else player will be affected by crownColor too
        batch.draw(player, 0, 0);
        batch.setColor(crownColor);
        batch.draw(crown, 0, 0);
        batch.end();
    }
}
 类似资料:
  • 问题内容: 给定透明的PNG以白色显示简单形状,是否有可能通过CSS更改其颜色?某种覆盖还是什么? 问题答案: 您可以将筛选器与和一起使用:筛选器相对于浏览器而言是较新的,但根据以下CanIUse表,超过90%的浏览器均支持它们 您可以将图像更改为灰度,棕褐色等(请看示例)。 因此,您现在可以使用滤镜更改PNG文件的颜色。

  • 问题内容: 我需要更改CSS中禁用的输入元素的样式。 我该如何针对Internet Explorer? 问题答案: 您不能使用Internet Explorer。 -您可以将输入设置为,但这会带来其他后果(例如使用,将被发送到服务器提交,但使用,则不会)

  • 我正在开发一款新游戏,我正在用LibGDX实现屏幕。 我对触摸屏和触摸屏的结合有点迷恋。 我的渲染方法中包含以下内容: 目前我有4个不同的屏幕,当isTouch被触发时,它们都发生了变化,问题是在我触摸第一个屏幕一次后,它从屏幕1变成了4。我试图将输入处理器设置为空,但它仍然从屏幕1跳到4,而无需在每个屏幕上等待。屏幕1上的触摸似乎也会在屏幕2 3和4上自动触发。如何重置输入处理器或在下一个屏幕加

  • 问题内容: Chrome支持元素上的[占位符属性](其他可能也支持)。 但是以下内容对占位符的价值没有任何作用: 仍将保留而不是。 是否可以更改占位符文本的颜色? 问题答案: 实作 有三种不同的实现:伪元素,伪类,什么也没有。 WebKit,Blink(Safari,Google Chrome,Opera 15+)和Microsoft Edge使用伪元素:。 Mozilla Firefox的4至1

  • 您好,我是java jtable的新手。我正在寻找一种在我的程序中有效的方法,但我没有找到它的任何运气。这是我的Jtable 数据来自ms Access数据库,但我想改变状态列中值为“非活动”的行的背景/前景。我在网上找到了很多例子,但所有的例子在我的程序中都是不可能的。有人能帮帮我吗?这是我的模特 这是创建我的表的方法,以及我如何从数据库中获取数据 我该如何添加以这种方式重新绘制的表格?有人能举

  • 是否有Cadence工作流基于外部输入更改睡眠持续时间的示例? 我正在寻找的场景是这样的:工作流在时间X之前一直处于Hibernate状态,但在Hibernate开始之后但在它完成之前,有一个外部触发器导致时间X变为时间Y。Y可以晚于或早于X。它甚至可以早于“现在”,它应该立即释放Hibernate。