【发布时间】:2016-12-22 14:17:47
【问题描述】:
我是 LibGDX 的初学者,我们目前以 4 人一组的方式制作跳棋游戏。这是学校的项目。 我们阻止了棋子的移动,但这不是问题。 我们有一个架构 MVC。 在游戏屏幕上,我们有一个棋盘游戏。我们不能显示棋子,而在其他屏幕上很容易。 我可以让它出现但在游戏板上但它不可点击。当我添加
stage.getViewport ().update (width, height, true)
按钮出现在游戏板之外,但不可点击,游戏板被缩放。
这里是各种类的link
问题出在GameScreen 类上。当我点击位于JouerIA 或JouerJoueur 类上的播放时,我会执行setScreen(GameScreen)。
所以我在这里只粘贴GameScreen 和GameRenderer。如果您需要更多代码来帮助我,我可以粘贴更多。
这是没有我添加不同按钮的代码。
GameScreen.java
public class GameScreen implements Screen {
private GameRenderer renderer;
public static String couleur1, couleur2, nom1, nom2;
Stage stage;
Skin skinneon;
OrthographicCamera camera;
TextButton menu;
@Override
public void render(float delta) {
this.renderer.render(delta);
}
@Override
public void resize(int width, int height) {
this.renderer.setSize(width, height);
}
@Override
public void show() {
Plateau plateau;
ControlPlateau controller;
Assets.loadGame();
plateau = new Plateau();
plateau.ajoutPions();
controller = new ControlPlateau(plateau);
this.renderer = new GameRenderer(plateau, controller);
this.renderer.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
}
@Override
public void hide() {
this.renderer.dispose();
Assets.disposeGame();
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void dispose() {
}
}
GameRenderer.java
public class GameRenderer implements Renderer {
private final Stage stage = new Stage(new FitViewport(10, 10));
private Table hud;
protected ControlPlateau controller;
public GameRenderer(Plateau plateau, ControlPlateau controller) {
Gdx.input.setInputProcessor(this.stage);
this.stage.addActor(plateau);
this.controller = controller;
/*addListener(new InputListener() {
public void actionPerformed(InputEvent event) {
controller.tap();
}
});*/
}
@Override
public void render(float delta) {
Plateau plateau = new Plateau();
Gdx.gl.glClearColor(.3f, .3f, .4f, 1);
Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT);
this.stage.draw();
Gdx.input.setInputProcessor(stage);
Gdx.input.setInputProcessor(new GestureDetector(new ControlPlateau(plateau)));
}
@Override
public void setSize(int width, int height) {
this.stage.getViewport().update(width, height, false);
Gdx.graphics.requestRendering();
}
@Override
public void dispose() {
this.stage.dispose();
}
}
【问题讨论】: