簡體   English   中英

為什么示例作者為正交攝影機硬編碼寬度和高度?(LibGdx Zombie Bird教程)

[英]Why does the sample author hardcode width and height for orthographic camera?(LibGdx Zombie Bird tutorial)

我正在嘗試遵循此處的指南並學習LibGdx。

http://www.kilobolt.com/day-4-gameworld-and-gamerenderer-and-the-orthographic-camera.html

這是用於設置正交攝影機的寬度和高度的作者代碼(用於將3d素材均勻地投影到2d的攝影機?

    private OrthographicCamera cam;
    and later in a constructor 
    cam = new OrthographicCamera();
    cam.setToOrtho(true, 136, 204);

他為什么要選擇硬編碼寬度和高度,而不通過Gdx.graphics.getWidth / getHeight檢索正在運行游戲的屏幕的高度和寬度,這是有原因的嗎? (-從在LibGDX(Java)中更改坐標系開始

您不了解相機的行為。 相機的屏幕是320x480還是1080 * 1920都沒關系。 相機使用自己的坐標系。 例如我們有1920 * 1080屏幕。 我們不想使用像素,因為這是不好的做法。 我們真正想要的是擁有自己的世界坐標系。 如果您的世界為16 * 9 m,則可以計算出1 m = 120像素。 但是您的朋友可以擁有800 * 450的屏幕,對他來說1 m = 50像素。 這就是為什么我們要硬編碼相機的寬度和高度。 但是這里還有另一個問題,比率。 我們認為我們的比率是16/9,但是某些設備可以具有4/3比率。 支持很多比率是非常復雜的主題,因此在這里我不想提及。

不同比例游戲的屏幕截圖

如果您願意,我可以與您分享我的代碼。 但是請注意,這並不完美,也不是完整的游戲。 正如您從屏幕截圖中看到的那樣,我不是硬編碼高度,而是寬度。 所以我上下都有空的空間。

如果有人還在為此苦苦掙扎,建議閱讀第5部分,作者在其中解釋“我們將如何假設游戲的寬度始終為136。高度將動態確定!我們將計算設備的屏幕分辨率並確定游戲的高度。”

暫無
暫無

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

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