私がやっていることは、全画面でタイルマップを表示することであり、正常に動作します。
キャラクターの動きもカメラもバッチリ。
私が欲しいのは:
画面左側のメニュー ボタンのように、マップ上にテキストまたは imageButton を表示します。
Scene2d ライブラリのステージを使用しようとしましたが、画面上に必要なものを描画できました。問題は、プレーヤーのスプライトが非表示になっていることです。
私のコードは次のようになります。
public class MapScreen implements Screen {
private TiledMap initialMap;
private static OrthogonalTiledMapRenderer orthogonalTiledMapRenderer;
private OrthographicCamera camera;
//player with x and y coordinates
private Player player;
public MapScreen() {
//my player
player = new player();
//the map
initialMap = getinitialMap();
//i ask the orthogonalTiledMapRenderer to render my map
orthogonalTiledMapRenderer = new OrthogonalTiledMapRenderer(currentmap);
//I create the camera and i make the player in the middle of the screen
camera = new OrthographicCamera();
camera.position.set(w / 2, h / 2, 0);
camera.translate(player.getPosition().x * 32, player.getPosition().y * 32);
camera.translate(-16 * 32, -8 * 32);
camera.update();
}
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
orthogonalTiledMapRenderer.getSpriteBatch().begin();
orthogonalTiledMapRenderer.setView(camera);
MapLayers mapLayers = initialMap.getLayers();
//I render all the layer with the orthogonalTiledMapRenderer
for (int i = 0; i < mapLayers.getCount(); i++) {
orthogonalTiledMapRenderer
.renderTileLayer((TiledMapTileLayer) mapLayers.get(i));
}
//handling event
handleEvent();
//i update the player position
player.move();
//renderig the player sprite
player.render(orthogonalTiledMapRenderer.getSpriteBatch());
orthogonalTiledMapRenderer.getSpriteBatch().end();
}
}
**プレイヤーのスプライトが見えなくなる**