Libgdx 阶段“冻结”
Libgdx stage 'frozen"
在我的游戏中有一个菜单,在这个菜单中,有 4 个选项卡,每个选项卡都有自己的 stage
,带有表格滚动窗格和按钮(这是个好主意吗?)
我的问题是每个阶段似乎 "frozen"、按钮没有响应并且滚动窗格不滚动
我的菜单结构:
菜单 class
-> 呈现一个选项卡(呈现 selectedTab
,selectedTab 是一个 Tab 对象(自定义 class),它被指定了一个特定的选项卡(例如:sele shopTab(扩展选项卡 class))
// 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()
方法,在选项卡更改时调用它
在我的游戏中有一个菜单,在这个菜单中,有 4 个选项卡,每个选项卡都有自己的 stage
,带有表格滚动窗格和按钮(这是个好主意吗?)
我的问题是每个阶段似乎 "frozen"、按钮没有响应并且滚动窗格不滚动
我的菜单结构:
菜单 class
-> 呈现一个选项卡(呈现 selectedTab
,selectedTab 是一个 Tab 对象(自定义 class),它被指定了一个特定的选项卡(例如:sele shopTab(扩展选项卡 class))
// 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()
方法,在选项卡更改时调用它