簡體   English   中英

Sprite從屏幕的左下角開始-libgdx

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM