[英]Sprite starts in lower left corner of screen - libgdx
我使用box2d設置了播放器,並且嘗試在播放器上繪制精靈。 播放器在屏幕中間生成,而精靈在屏幕的左下角生成,但確實與播放器實體一起移動,只是從另一個位置開始。
GameScreen片段:
@Override
public void render(float delta) {
super.render(delta);
player.update();
world.step(TIMESTEP, VELOCITY_ITERATIONS, POSITION_ITERATIONS);
}
@Override
public void show() {
player = new Player(world, 0, 0);
}
播放器類別摘要:
public Player(World world, float x, float y) {
texture = new Texture(Gdx.files.internal("sprites/Player.png"));
sprite = new Sprite(texture);
}
public void update() {
batch = new SpriteBatch();
batch.begin();
sprite.draw();
sprite.setPosition(body.getPosition().x, body.getPosition().y);
batch.end();
body.setLinearVelocity(impulse);
}
我嘗試根據主體的坐標在構造函數中設置子畫面的位置,但似乎不起作用。 我已刪除車身和燈具代碼。 朝正確方向的任何推動都值得贊賞。
如果啟用box2d調試渲染,則可能會發現紋理和主體都從屏幕的左上角開始。 實際上, 0, 0
應該是左下角的坐標。 為了將您的身體設置在屏幕中央,您應該設置以下內容
(SCREEN_WIDTH / 2) / PTM_RATIO, (SCREEN_HEIGHT / 2) / PTM_RATIO
作為您身體的初始位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.