【发布时间】:2020-08-24 17:08:21
【问题描述】:
我创建了一个平铺的地图,它应该是这样的:
但是,当我渲染它时,我没有得到任何图形,我只有我的背景颜色和黑条,我的对象应该在哪里:
我不明白问题出在哪里,这是我正在渲染的屏幕中的代码:
public class GameScreen implements Screen {
private OrthographicCamera cam;
private MyGdxGame myGame;
private Vector3 pos;
private Viewport gameport;
private TmxMapLoader mapLoader;
private TiledMap map;
private OrthogonalTiledMapRenderer mapRenderer;
public GameScreen(MyGdxGame game){
this.myGame = game;
pos = new Vector3(Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2, 0);
cam = new OrthographicCamera();
cam.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
gameport = new ExtendViewport(1060, 2060, cam);
mapLoader = new TmxMapLoader();
map = mapLoader.load("game_map1.tmx");
mapRenderer = new OrthogonalTiledMapRenderer(map);
}
@Override
public void show() {
}
public void update(float delta){
handleInput(delta);
cam.update();
}
private void handleInput(float delta) {
if(Gdx.input.isTouched()){
pos.set(Gdx.input.getX(), Gdx.input.getY(), 0);
// cam.unproject(pos);
cam.position.x = Gdx.input.getX();
cam.position.y = Gdx.input.getY();
}
}
@Override
public void render(float delta) {
update(delta);
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
mapRenderer.setView(cam);
mapRenderer.render();
// myGame.sr.begin(ShapeRenderer.ShapeType.Filled);
// myGame.sr.setColor(Color.BLUE);
// myGame.sr.circle(pos.x, pos.y, 50);
// myGame.sr.end();
}
@Override
public void resize(int width, int height) {
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void hide() {
}
@Override
public void dispose() {
}
}
有人愿意解释一下问题是什么?
【问题讨论】:
-
尝试在 resize 方法中更新视口
-
@JaeheonShim 我做了,但没有帮助。我不明白为什么它会渲染一堆黑条而不是图像
-
这可以在桌面上使用吗?
-
@TheChubbyPanda 我在 Android Studio 工作,如何检查?
-
用桌面启动器测试一下,你可以用项目创建工具创建一个。
标签: java android libgdx rendering tiled