HTML5移動遊戲開發高階程式設計 11:自建Quintus引擎(3)

CopperDong發表於2018-02-19

11.1 引言

    精靈是引擎用來在螢幕上顯示圖形和元素的主要可視遊戲物件(GameObject),精靈使用一些基本資產或精靈表(SpriteSheet)把自身繪製到遊戲中;場景(Scene)則提供了一種方式把諸如關卡一類的遊戲的某個離散部分包裝成一個既好用又可重用的包;最後,作為遊戲狀態的主要容器,舞臺(Stage)負責跟蹤GameObject列表,以及確保它們在每幀中的更新和繪製。

11.2 定義精靈表

     精靈表支援在單個影像中儲存任意數目的影像,這樣做的目的是加快遊戲的載入過程,以及把動畫變得更便於使用。     

     建立SpriteSheet類: 一個SpriteSheet物件只引用同一精靈的一組大小相似的幀,一個單次載入的影像資產可被編譯成若干SpriteSheet物件。

     跟蹤和載入精靈表:

     測試SpriteSheet類:

11.3 新增精靈

     事件由Evented類處理,元件由GameObject類處理,圖形由資產和SpriteSheet類處理等

     編寫Sprite類:

     引用精靈、屬性和資產:

     運用Sprite物件:blockbreak.html

11.4 使用場景設定舞臺

     使用一個物件管理眾多精靈的更新和繪製。Quintus將這一物件稱為Stage(舞臺),還會額外加入一個Scene(場景)物件概念,該物件用來設定某個特定舞臺的舞臺物件。Scene的作用之一是簡化關卡的設定,然後在關卡之間進行切換。

     quintus_scenes.js

     這一場景功能背後的設想是,你希望以獨立方式來設定遊戲的某一關或某一段內容,所以它放入一個獨立的方法中來簡化不同場景之間的切換。

      編寫Stage類:負責記錄一個精靈列表並讓精靈更新和渲染自身。


相關文章