【问题标题】:libgdx setOrigin and setPosition not working as expected?libgdx setOrigin 和 setPosition 没有按预期工作?
【发布时间】:2012-07-04 13:13:53
【问题描述】:

我创建了一个相机:

camera = new OrthographicCamera(5.0f, 5.0f * h/w);

创建一个精灵:

ballTexture = new Texture(Gdx.files.internal("data/ball.png"));
ballTexture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
TextureRegion region = new TextureRegion(ballTexture, 0, 0, ballTexture.getWidth(), ballTexture.getHeight());
ball = new Sprite(region);

设置原点、大小和位置:

ball.setOrigin(ball.getWidth()/2,ball.getHeight()/2);
ball.setSize(0.5f, 0.5f * ball.getHeight()/ball.getWidth());
ball.setPosition(0.0f, 0.0f);

然后渲染它:

batch.setProjectionMatrix(camera.combined);
batch.begin();
ball.draw(batch);
batch.end();

但是当我渲染它时,我的球精灵的左下角在 (0, 0),而不是它的中心,正如我所期望的那样,因为我将原点设置为精灵的中心。我错过了什么?

【问题讨论】:

    标签: android libgdx


    【解决方案1】:

    原点与旋转和缩放有关,如该方法的JavaDocs 中所述。

    【讨论】:

    • 啊,当然。我读过,但没有把 2 和 2 放在一起。谢谢。
    • 我知道它与位置无关,但为什么设置位置方法的文档中的这句话? :设置精灵将被绘制的位置。如果原点、旋转或比例发生变化,在这些操作之后设置位置会稍微更有效。
    • 答案中的链接已失效。新链接是:libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/…
    猜你喜欢
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    • 2023-03-11
    • 2016-08-13
    • 2013-07-07
    • 2012-12-05
    • 2017-05-22
    • 2019-07-28
    相关资源
    最近更新 更多