问题描述
public class MyKoalabr8 extends Game {
@Override
public void create () {
setScreen(new MainMenuScreen(this));
}
}
这将设置主菜单屏幕
public class MainMenuScreen implements Screen {
private Viewport viewport;
private Stage stage;
private MyKoalabr8 game;
public MainMenuScreen(MyKoalabr8 game){
this.game = game;
viewport = new FitViewport(MyKoalabr8.V_WIDTH,MyKoalabr8.V_HEIGHT,new OrthographicCamera());
stage = new Stage(viewport,(game).batch);
Label.LabelStyle font = new Label.LabelStyle(new BitmapFont(),Color.WHITE);
Table table = new Table();
table.center();
table.setFillParent(true);
Label gameOverLabel = new Label("Play",font);
table.add(gameOverLabel).expandX();
table.row();
stage.addActor(table);
}
@Override
public void render(float delta) {
if(Gdx.input.justTouched()) {
System.out.println("changing screen");
game.setScreen(new GameScreen(game));
dispose();
}
Gdx.gl.glClearColor(0,1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stage.draw();
}
}
这个类所做的就是当用户点击它时,它会将屏幕设置为 GameScreen 但是,在我的游戏屏幕中,我有一个 TMX 地图,由于某种原因,除非我调整窗口大小,否则它不会渲染地图
public GameScreen(MyKoalabr8 game) {
this.game = game;
camera = new OrthographicCamera();
gamePort = new FitViewport((MyKoalabr8.V_WIDTH / MyKoalabr8.PPM),(MyKoalabr8.V_HEIGHT / MyKoalabr8.PPM),camera);
gamePort.setWorldSize((MyKoalabr8.V_WIDTH / MyKoalabr8.PPM),(MyKoalabr8.V_HEIGHT / MyKoalabr8.PPM));
gamePort.apply();
maploader = new TmxMapLoader();
map = maploader.load("level1.tmx");
renderer = new OrthogonalTiledMapRenderer(map,1 / MyKoalabr8.PPM);
camera.position.set(gamePort.getWorldWidth() / 2,gamePort.getWorldHeight() / 2,0);
world = new World(new Vector2(0,0),true);
new B2WorldCreator(world,map);
}
public void update(float dt) {
world.step(1 / 60f,6,2);
camera.update();
renderer.setView(camera);
}
@Override
public void render(float delta) {
update(delta);
Gdx.gl.glClearColor(1,1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
renderer.render();
game.batch.setProjectionMatrix(camera.combined);
game.batch.begin();
game.batch.end();
}
https://gyazo.com/19089bfeb7ee8a1b483a819ac9d2283c 请帮助我不知道为什么会坏
另一个有效的解决方案是,如果我直接将 GameScreen 设置为屏幕
public class MyKoalabr8 extends Game {
@Override
public void create () {
setScreen(new GameScreen(this));
}
}
如果我这样做,它就可以正常工作。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)