在我的游戏中有一个菜单,在这个菜单中,有4个选项卡,每个选项卡都有自己的stage
与表滚动窗口和按钮(这是一个好主意吗?)
我的问题是,每个阶段似乎都“冻结”,按钮没有响应,滚动窗格不滚动
我的菜单结构:
菜单类
- >渲染一个标签(渲染selectedTab
,selectedTab是一个与特定标签一起签名的Tab对象(自定义类)(例如:sele shopTab(扩展标签类))
// menu class
private Tab selectedTab;
private Tab RecipeTab, SellTab, UpgradeTab, ShopTab;
// menu constructor
RecipeTab = new RecipeTab(viewport, sb, itemsdata);
SellTab = new SellTab(viewport, sb, hud);
UpgradeTab = new UpgradeTab(viewport, sb, itemsdata);
ShopTab = new ShopTab(viewport, sb);
selectedTab = RecipeTab;
// render
selectedTab.render(sr, delta);
// on tab change
public void setSelectedTab(Tab newTab) {selectedTab = newTab;}
setSelectedTab(ShopTab);
- >菜单包含一个用于切换选项卡的导航栏(所选选项卡分配有另一个选项卡对象)
我不知道问题是来自阶段还是演员。即使是简单的文本按钮也不起作用
// how my stages are made
// constructor
this.stage = new Stage(viewport, sb); // ExtendViewport (same everywhere), Spritebatch
Gdx.input.setInputProcessor(this.stage);
// render
this.stage.draw();
this.stage.act(delta);
我想到了。答案很简单,与inputProcessor存在冲突
我在每个标签上设置输入处理器
所以我在标签上添加了一个setInputProcessor()
方法,在标签更改时调用它