我目前正在PyGame中製作2D橫向滾動run'n'jump平臺遊戲。大多數的東西工作正常,事實上 - 我利用快速pyGame Sprite對象組。Pygame:使用滾動級別更新Reces
我想知道的是人們通常如何處理滾動遊戲的Rects。我顯然有一個比可見區域大得多的等級,玩家,敵人,子彈等都有自己的(x,y)座標來描述他們在關卡中的位置。
但是現在,由於我們使用「spriteGroup.draw(surface)」調用,它不會將它們顯示在正確的位置,除非每個對象Rects已經被調整,以便右邊的部分顯示在屏幕上。換句話說,每次玩家/敵人/子彈/其他任何更新時,都需要傳遞相機信息,以便更新其Rect。
這是最好的方法使用?它可以工作,但我並不喜歡在每次更新時將相機信息傳遞給每個對象以抵消Rects。很明顯理想的方法(我認爲)是使用具有「真實」座標的Rects,將所有事物都投射到與水平相同的緩衝區,然後將可見部分投射到屏幕上,但在實踐中會減慢比賽下來很多。
任何意見/見解將不勝感激。
謝謝
我從不超過地圖的極限運動使用Pygame,但我假設你可以使用翻譯矩陣將所有內容保存在「真實」座標中,而無需創建像關卡一樣巨大的緩衝區。 – Doggett 2010-11-01 23:41:58
嗯,不是真的,這是重點。 Pygame可以讓你一次畫出許多精靈,但不會讓你轉換它們的座標。 – RedCap 2010-11-02 02:30:56
[添加滾動到平臺遊戲中的pygame]可能的重複(http://stackoverflow.com/questions/14354171/add-scrolling-to-a-platformer-in-pygame) – sloth 2015-09-11 07:33:16