2013-05-30 59 views
0

處理2D自上而下的地圖貼圖遊戲 - 我一直在研究生成地圖座標(x/y),玩家可以用它來導航(「無限」 ,perlin /其他生成的地形)地圖,並解決噪音生成問題。在「無限」地圖上定義固定的座標起點

我已經看到了解決方案,並被告知要將世界座標轉換爲屏幕座標,反之亦然 - 但我無法弄清楚如何正確定義固定地圖座標,因爲在屏幕上渲染的東西是座標相對於框架/窗格...所以0,0始終是窗口的左上角,無論地圖在哪裏。

我可以很容易地計算出座標的地圖(有a磚柱和角色的位置和地圖中心之間b瓷磚行),但我不明白如何定義一個固定的地圖上起始位置 ?一旦我啓用了保存功能,玩家可以在不同的位置開始遊戲,因此無法以此爲基礎。

+0

我不明白問題出在哪裏與起始位置。 –

+0

(假設玩家始終居中在屏幕上)您可以在玩家周圍的一個盒子中獲取世界座標;球員在世界的x,y上,將x-10到x + 10映射到屏幕,將y-10和y + 10映射到屏幕。 (x-10,y-10)是您的0,0屏幕座標嗎? – 2013-05-30 16:10:48

+0

我還沒有保存功能,但是當我這樣做時,玩家將能夠在他們退出的最後一個位置開始*如果我使用它作爲地圖座標的基礎,地圖座標每次都會改變玩家在不同區域保存/退出後再次開始遊戲。 – helion3

回答

0

當做這樣的事情時,所有的座標應該在「世界座標」。所以你的玩家位置是在無限地圖上的位置,而不是他在屏幕上的位置。

要呈現所有內容,您需要一種採用世界座標並將它們轉換爲屏幕座標的方法,反之亦然。

要開始渲染,請使用屏幕座標0,0 - >變換到世界座標以獲取要在左上角渲染的圖塊。與點擊相同:以鼠標座標,轉換,然後看世界地圖上有什麼。

移動播放器時,更新它的世界座標等。

+0

這很有道理,但我的問題是如果我沒有參考點,我該如何確定玩家所處的世界座標?渲染圖標使用屏幕座標,定位球員需要世界座標,世界座標需要0,0的起點。我如何設置一個位置或知道0,0的位置? – helion3

+0

世界的起源是你放置它的地方。由於您使用生成的地形,您的算法將需要世界座標作爲輸入。通常,該算法將具有特定需求,並且一定的座標將使所有事情變得更容易。使用那個。 –

相關問題