簡體   English   中英

Libgdx坐標系原點(0,0),不在屏幕左下方

[英]Libgdx Coordinate System Origin(0,0), not at bottom left of screen

我正在研究一個可視化n體粒子模擬的程序。 為此,我創建了一個攝像機,該攝像機用於將粒子位置投影到屏幕上。 然后,使用spritebatch將這些粒子渲染到正確的位置。 但是,要使其工作,坐標系的原點必須位於屏幕的左下方。 通常不是這種情況,而是原點位於屏幕上大約四分之一的位置,並且在所有情況下都位於左側,並且在調整屏幕大小時會發生變化。

如何確保坐標系原點始終位於屏幕的左下角,而不是沿任一軸高出幾百個像素?

謝謝。

我解決了我的問題。 而不是使用:

sprite.draw(batch);

我用了:

batch.setColor(color);
batch.draw(sprite.getTexture(),sprite.getX(),sprite.getY(),sprite.getWidth()*sprite.getScaleX(),sprite.getHeight()*sprite.getScaleY());

我不知道為什么這樣做。

如果決定使用Sprite,則應堅持建議的工作流程並使用以下方法進行繪制:

sprite.draw(batch);

我的意思是,如果要獲取紋理並繪制它們,使用精靈的目的是什么?

在屏幕上的位置(0,0)繪制紋理時,這意味着其左下角將位於屏幕的左下角。 這是Sprite的“熱點”或“來源”默認情況下位於其左下角。

但是您可以使用setOrigin方法更改它:

https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/g2d/Sprite.html#setOrigin-float-float-

也就是說,原點是精靈的“中心”,因此,如果原點旋轉,它將圍繞該點旋轉。 同樣,當您在某些坐標上繪制精靈時,精靈原點將恰好位於那些坐標處。 這樣,您就不必調整精靈繪制位置。

檢查該頁面上精靈類有哪些方法...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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