gpt4 book ai didi

java - 在 LibGDX 中,当 setFillParent 为 true 时,Actor 的位置是错误的

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:12 26 4
gpt4 key购买 nike

我花了几个小时试图解决这个问题,但快要疯了,请看看我的问题。

说明问题的图片:

Image illustrating this

  • exitButtonsetFillParent函数设置为false时结果在图像的右侧,按钮居中里面Container但尺寸不对。

  • exitButtonsetFillParent函数设置为true时结果是图像的左侧,按钮的大小正确但位置错了。

代码如下:

    Container container = new Container(exitButton);

container.fill();

container.setRound(false);

container.setSize(buttonSize, buttonSize);

exitButton.setFillParent(true);

//exitButton.setFillParent(false);

container.setPosition(
((float)viewportWidth/7f) - (buttonSize/2f)
,((float)viewportHeight*5f/6f) - (buttonSize/2f)
);

最佳答案

小部件被设计为由其父级调整大小。 setFillParent(true) 允许小部件覆盖此设置并设置其自己的大小(以匹配其父级的大小)。除非它是层次结构的顶级小部件,否则您永远不想这样做,因为当小部件控制自己的大小时,它的父部件就失去了正确定位它的能力。

至于为什么按钮绘制得比容器大,如果子级的 minWidth/minHeight 大于父级,就会发生这种情况。假设 exitButton 是一个 ImageButton 或只是一个 Button,这意味着其图像或背景的可绘制对象大于 buttonSize

解决此问题的最简单方法是重写 getMinWidth()getMinHeight() 以返回零。例如:

exitButton = new Button(skin, style){
public float getMinWidth(){return 0;}
public float getMinHeight(){return 0;}
};

关于java - 在 LibGDX 中,当 setFillParent 为 true 时,Actor 的位置是错误的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44123362/

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