[英]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方法更改它:
也就是說,原點是精靈的“中心”,因此,如果原點旋轉,它將圍繞該點旋轉。 同樣,當您在某些坐標上繪制精靈時,精靈原點將恰好位於那些坐標處。 這樣,您就不必調整精靈繪制位置。
檢查該頁面上精靈類有哪些方法...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.