2013-11-04 58 views
0

我有一個box2d的播放器設置,我試圖在播放器上繪製一個精靈。玩家在屏幕中間產生,而精靈在屏幕的左下角產生,但是隨着玩家實體一起移動,剛剛從不同的位置開始。Sprite從屏幕左下角開始 - libgdx

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); 
} 

Player類片段:

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); 
} 

我試着設置基於身體的座標,但構造精靈的位置似乎並不奏效。我已經刪除了身體&夾具代碼。任何推動正確的方向表示讚賞。

+0

「玩家在屏幕中間產生」是什麼意思? – ssantos

+0

@ssantos當我在我的遊戲屏幕類中實例化玩家對象時,我傳入0,0,這會將我的對象置於屏幕中間。 – invictvs1

回答

0

如果啓用box2d調試渲染,您可能會發現紋理和正文從屏幕的左上角開始。實際上,0, 0應該是左下角的座標。爲了將您的身體設置在屏幕中心,您應該設置類似於

(SCREEN_WIDTH/2)/PTM_RATIO, (SCREEN_HEIGHT/2)/PTM_RATIO 

作爲您的身體初始位置。