Sprite从屏幕的左下角开始 - libgdx

时间:2013-11-04 01:00:23

标签: java android 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);
}

我尝试根据body的坐标在构造函数中设置sprite的位置,但它似乎不起作用。我已经删除了身体和夹具代码。任何正确方向的推动都值得赞赏。

1 个答案:

答案 0 :(得分:0)

如果启用box2d调试渲染,您可能会发现纹理和正文都从屏幕的左角开始。实际上,0, 0应该是左下角的坐标。为了将您的身体设置在屏幕的中心,您应该设置类似

的内容
(SCREEN_WIDTH / 2) / PTM_RATIO, (SCREEN_HEIGHT / 2) / PTM_RATIO

作为你的身体初始位置。