gpt4 book ai didi

java - 内兹/单一游戏 : Can't click buttons but mouse actions are properly registering

转载 作者:行者123 更新时间:2023-12-02 10:32:10 26 4
gpt4 key购买 nike

所以,我不知道我是否遗漏了某些东西,但无论我如何工作或研究它,我都无法单击屏幕上的任何按钮。

我制作了一个带有按钮的对话框,基本上如示例项目中所示,但是当我尝试单击该按钮时,什么也没有发生。我尝试以编程方式触发 onClick 并且工作正常,我还测试了鼠标输入是否已正确注册,而且确实如此。我完全不知所措,不知道为什么这行不通。

我的类(class)代码如下:

public class Interactable : UICanvas
{

public void interact()
{
var skin = Skin.createDefaultSkin();

var table = stage.addElement(new Table());
table.center();
table.setFillParent(true);

table.add(talk(this.entity.name, "Stay a while and glisten", "Bye!"));

}


public Dialog talk(string title, string messageText, string closeButtonText)
{
var skin = Skin.createDefaultSkin();

var style = new WindowStyle
{
background = new PrimitiveDrawable(new Color(50, 50, 50)),
//Dims the background
stageBackground = new PrimitiveDrawable(new Color(0, 0, 0, 150))
};

var dialog = new Dialog(title, style);
dialog.getTitleLabel().getStyle().background = new PrimitiveDrawable(new Color(55, 100, 100));
dialog.pad(20, 5, 5, 5);
dialog.addText(messageText);
var exitButton = new TextButton(closeButtonText, skin);
exitButton.onClicked += butt => dialog.hide();
dialog.add(exitButton);


return dialog;
}


}
}

当跑到另一个实体并按“E”时,会调用 interact()。这导致一切正常渲染,但我无法单击按钮。

另外:当我尝试查看 exitButton 坐标时,尽管对话框出现在窗口中间,但无论如何它们始终为 0

单游戏版本:3.7内兹版本:0.9.2

更新:所以看起来按钮是可点击的,但它们的点击框甚至与按钮真正呈现的位置几乎没有对齐。

更新2:问题似乎在于按钮的渲染位置和实际单击框的位置不同。我将相机放大了 2 倍,相机也跟着我的小角色四处走动。然后,对话框将出现在与当前摄像机 View 相关的 X、Y 处,但实际的单击框出现在 TiledMap 的 X、Y 处(并不总是在屏幕上)。不太确定如何解决这个问题。

最佳答案

那么!我遇到的问题是我在整个过程中使用了一个渲染器(RenderLayerRenderer)。我为解决此问题所做的就是启动另一个渲染器(ScreenSpaceRenderer)。这允许我使用它来渲染 UI,并且它的 XY 变量不会改变,而只是在可视区域中保持静态。

所以我最终得到了两个渲染,如下所示:

addRenderer(new RenderLayerRenderer(0,new int[] { (int)RenderLayerIds.First, (int)RenderLayerIds.Second, (int)RenderLayerIds.Third}));
addRenderer(new ScreenSpaceRenderer(1, new int[] { (int)RenderLayerIds.UILayer }));

将第一个用于我的游戏渲染,而底部仅用于 HUD!

关于java - 内兹/单一游戏 : Can't click buttons but mouse actions are properly registering,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53552272/

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