我正在研究自頂向下的RPG,並希望實現無縫滾動貼圖。也就是說,當玩家探索世界時,地圖之間沒有加載屏幕,並且沒有到下一個區域的「門」。無縫滾動瓷磚地圖
我有兩種方式來打破世界。在頂層,我有「區域」,它只是9個「地圖」的集合(這些區域僅由目錄表示)。在該區域內,9張地圖被組織成3×3的網格。我還沒有想出表達這些地圖的最佳方法,無論是通過索引還是通過相對於其父區域的相對座標。這些地圖是實際呈現給用戶屏幕的內容。考慮到每張地圖的大小和視口的大小,我知道用戶只能在地圖的角落看到最多四張地圖。
我的問題是,當玩家探索世界時,我如何跟蹤代碼中的地圖及其各自的偏移量?我在考慮有一個map<Point, Map*>
,0,0是玩家當前所在的地圖。如果玩家在地圖的左下角,那麼東部的地圖將被存儲爲1,0,南方的地圖爲0,1,東南方向的地圖爲1,1。我預見到的問題是,我不確定這些分數是否可變,並且如果每次玩家移動到另一張地圖或地圖的不同部分時都重建列表,將導致問題。
整個世界會一次回憶嗎?或者你會在玩家走路時加載相鄰區域? – 2010-10-31 05:32:23
他們將在玩家走路時加載。我一直在思考這個問題,也許它不像我想的那麼難。我可以保留加載的地圖列表。當我遍歷列表來渲染它們時,我只是預先形成一些檢查來查看它們與玩家所在地圖之間的關係。我可以保留一個指向「當前地圖」的指針,以檢查列表中的所有地圖。如果玩家在地圖範圍之外,那麼我可以卸載它。 – rcapote 2010-10-31 05:36:41