Java LIBGDX-表';s文本按钮未填充相应的行
我最近正在开发一款使用Scene2D的游戏,直到我遇到了这个问题,如图所示: 我可以单击按钮的范围超过了实际的TextButton区域 我已经阅读了GitHub页面中关于TableLayouts的文档,并阅读了关于Scene2D的不同文章,我尝试了摆弄不同的函数(例如padding、colSpan)来找到解决方案,但我似乎找不到解决方案 以下是负责设置和绘制表格的代码:Java LIBGDX-表';s文本按钮未填充相应的行,java,user-interface,libgdx,Java,User Interface,Libgdx,我最近正在开发一款使用Scene2D的游戏,直到我遇到了这个问题,如图所示: 我可以单击按钮的范围超过了实际的TextButton区域 我已经阅读了GitHub页面中关于TableLayouts的文档,并阅读了关于Scene2D的不同文章,我尝试了摆弄不同的函数(例如padding、colSpan)来找到解决方案,但我似乎找不到解决方案 以下是负责设置和绘制表格的代码: table=newtable(); 表.setDebug(true); 表.添加(图形按钮).宽度(200f).高度(200
table=newtable();
表.setDebug(true);
表.添加(图形按钮).宽度(200f).高度(200f);
table.row();
表.添加(音频按钮).宽度(200f).高度(200f);
table.row();
表.添加(返回标题按钮).宽度(200f).高度(200f);
table.setBounds(0,0,stage.getWidth(),stage.getHeight());
阶段。加法器(表);
下面是代码的其余部分(请注意,我还没有将文本放在按钮的中心位置,我只添加了填充值,而且-为了方便起见,我从Screen类中删除了空函数)
导入com.badlogic.gdx.Game;
导入com.badlogic.gdx.gdx;
导入com.badlogic.gdx.Screen;
导入com.badlogic.gdx.scenes.scene2d.InputEvent;
导入com.badlogic.gdx.scenes.scene2d.Stage;
导入com.badlogic.gdx.scenes.scene2d.ui.Table;
导入com.badlogic.gdx.scenes.scene2d.ui.TextButton;
导入com.badlogic.gdx.scenes.scene2d.ui.TextField;
导入com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
导入com.badlogic.gdx.utils.viewport.ScreenViewport;
导入com.thesameritan.game.GUI.UI;
公共类选项屏幕扩展屏幕属性实现屏幕{
私人舞台;
私人餐桌;
选项屏幕(最终游戏){
超级();
阶段=新阶段(新屏幕视口());
Gdx.input.setInputProcessor(阶段);
TextButton backToTitleButton=UI.createNewButton(“BACK”,buttonStyle,0.8f,25f,0.9f);//使用文本、样式、padbooth、padLeft和fontScale从另一个类创建按钮
TextButton graphicsButton=UI.createNewButton(“图形”,按钮样式,0.9f,20f,0.9f);
TextButton audioButton=UI.createNewButton(“音频”,按钮样式,0.9f,20f,0.9f);
backToTitleButton.addListener(新建ClickListener(){
@凌驾
已单击公共无效(InputEvent事件、浮点x、浮点y){
//分门别类
}
});
graphicsButton.addListener(新建ClickListener(){
@凌驾
已单击公共无效(InputEvent事件、浮点x、浮点y){
//图形学分支
}
});
audioButton.addListener(新建ClickListener(){
@凌驾
已单击公共无效(InputEvent事件、浮点x、浮点y){
//分支到选项
}
});
table=新表();
表.setDebug(true);
表.添加(图形按钮).宽度(200f).高度(200f);
table.row();
表.添加(音频按钮).宽度(200f).高度(200f);
table.row();
表.添加(返回标题按钮).宽度(200f).高度(200f);
table.setBounds(0,0,stage.getWidth(),stage.getHeight());
阶段。加法器(表);
}
@凌驾
公共无效渲染(浮动增量){
clearScreen();//来自ScreenProperties
stage.draw();
}
@凌驾
公共空间处置(){
DisposeObject();//来自ScreenProperties
stage.dispose();
}
}
我想要的是在不影响按钮大小的情况下最小化按钮之间的间隙-我再次尝试通过更改.width()
和.height()
值来减小交互区域的大小(如红线所示)
非常感谢你 这里有趣且缺失的部分是UI.createNewButton 您可以调试按钮本身,而不是将debug设置为外部表:
backToTitleButton.setDebug(true)
。您将看到单击边界没有超出按钮区域,但图形表示不正确。我怀疑你没有在矩形中使用Ninepatch