簡體   English   中英

在繪制之前要翻譯所有對象?

[英]Translating All Objects Before Drawing?

因此,我是與GPU一起編程的新手,而LibGDX也是新手。 我正在慢慢做自己的方式,但是在弄清楚如何修改繪制對象的位置時遇到了問題。

現在,我在關卡課程中只有一個抽獎電話:

// Update the camera.
// ------------------
_cameraRef.update();
_cameraRef.apply(Gdx.gl10);
_batchRef.setProjectionMatrix(_cameraRef.combined);

// Draw.
// -----
_batchRef.begin();
_player.draw(_batchRef);
_batchRef.end();

很簡單。 玩家以其x和y坐標繪制。

但是,我想做的是讓他在他的x和y坐標上乘以一個常數來繪制(取決於游戲的分辨率,可以是1、2或4)。

因此,與其在(4,8)處繪制,不如在(8,16)處繪制他。

基本上,是否有一種方法可以告訴批處理從x和y坐標的2x或4x位置繪制每個對象?

我似乎認為SpriteBatch :: translate(x,y,z)是答案,但是我似乎無法使其按我想要的方式工作。

任何幫助表示贊賞!

沒有GL方法可以乘以平移坐標。 如果您認為這確實是您應該做的,則可以將矩陣作為浮點數組並乘以轉換分量。 但我不建議僅使用translate(x*resolutionFactor, y*resolutionFactor, z*resolutionFactor)

盡管您沒有提供太多信息,但我猜想在處理DPI約為2倍左右(視網膜顯示)的設備時遇到了麻煩。 如果是這種情況,則您的問題可能來自“ glOrtho”。 此方法主要用於定義2D屏幕坐標系,對於Sprite繪制,通常將其設置為:top = left = 0,bottom = viewHeight,right = viewWidth。 這些viewWidth和viewHeight可能是從幀緩沖區本身獲取的,對於您的情況是錯誤的。 如果可以使用此方法,則應為視網膜設備划分寬度和高度,或者僅使用視圖的寬度和高度進行設置。

暫無
暫無

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

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