gpt4 book ai didi

java - 不使用Image可以画透明图层吗?-LibGdx

转载 作者:行者123 更新时间:2023-12-01 20:23:21 24 4
gpt4 key购买 nike

在我的游戏中,当我单击按钮时,会弹出窗口。

同时,我想在屏幕上除弹出窗口之外绘制一个透明层,以给人一种当弹出窗口处于 Activity 状态时,背景被禁用的印象。

类似这样的事情:

enter image description here

是否可以使用现有的实体图像来创建透明叠加层?


我应该使用透明图像本身来制作透明层的印象吗?

最佳答案

Image 是一个可以绘制的 Actor,但您需要 Actor 的透明度,请使用 Actor

创建一个 Actor 作为透明层并按正确的顺序添加,以便您可以仅禁用背景 Actor 的触摸。

你应该维持 Actor 的秩序。

stage=new Stage();
Texture texture=new Texture("badlogic.jpg");

Image image=new Image(texture);
image.addListener(new ClickListener(){
@Override
public void clicked(InputEvent event, float x, float y) {
Gdx.app.log("TouchTest","Clicked on Image");
}
});

stage.addActor(image);

Actor actor=new Actor(); // this is your transparent layer
actor.setSize(Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
stage.addActor(actor);

// Popup should on the top or your actor(touch layer)

Image image1=new Image(texture);
image.setPosition(100,100);
stage.addActor(image1);

Gdx.input.setInputProcessor(stage);

您还可以管理触摸层的可触摸性。

actor.setTouchable(Touchable.disabled);  // when you want to disable touch on 
<小时/>

在我的建议中,您应该为弹出窗口使用Dialog。对话框是一个包含内容表的模式窗口。

编辑

从您的引用图像来看,您似乎需要半透明层,因此在上面的代码中使用 semiTL 而不是 Actor

Pixmap pixmap = new Pixmap(1,1, Pixmap.Format.RGBA8888);
pixmap.setColor(Color.BLACK);
pixmap.fillRectangle(0, 0, 1, 1);
Texture texture1=new Texture(pixmap);
pixmap.dispose();

Image semiTL=new Image(texture1);
semiTL.setSize(Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
semiTL.getColor().a=.8f;
stage.addActor(semiTL);

关于java - 不使用Image可以画透明图层吗?-LibGdx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44260510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com