【发布时间】:2021-06-12 18:20:32
【问题描述】:
如果我像这样更改屏幕,它会起作用。
button.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
someclass.setScreen(someclass.getGameScreen());
}
});
但我的目标是使用服务器响应来更改屏幕,如下所示:
Main.java
button.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
client.sendTCP(new ChangeLobbyToGameRequest());
}
});
和
public void changeToGame(){
someclass.setScreen(someclass.getGameScreen());
}
服务器监听器
if (object instanceof ChangeLobbyToGameResponse){
Main.changeToGame();
}
然后我收到以下错误
E/AndroidRuntime: FATAL EXCEPTION: Thread-4
Process: com.somegame.game, PID: 15828
java.lang.IllegalArgumentException: Error compiling shader:
at com.badlogic.gdx.graphics.g2d.SpriteBatch.createDefaultShader(SpriteBatch.java:164)
at com.badlogic.gdx.graphics.g2d.SpriteBatch.<init>(SpriteBatch.java:127)
at com.badlogic.gdx.graphics.g2d.SpriteBatch.<init>(SpriteBatch.java:81)
at com.labyrix.game.Screens.GameScreen.show(GameScreen.java:46)
at com.badlogic.gdx.Game.setScreen(Game.java:61)
at com.labyrix.game.Screens.Lobbyscreen.changeToGame(LobbyScreen.java:59)
游戏画面展示方式
@Override
public void show() {
batch = new SpriteBatch();
isorend = new Board(batch);
.....
}
【问题讨论】:
标签: java android libgdx kryonet