游戲API 使用了MIDP 的低級圖形類接口(Graphics,Image等等)。整個game 包僅有5個Class,其結(jié)構(gòu)關(guān)系如圖:
GameCanvas
這個類是Canvas類的子類,為游戲提供了基本的"屏幕"功能。除了從Canvas 繼承下來的方法外,這個類還提供了游戲?qū)S玫墓δ?如查詢當前游戲鍵狀態(tài)的能力,同步圖像輸出;這些功能簡化了游戲開發(fā)并提高了性能。
這個類與Canvas 類相比有兩個優(yōu)點:1。它擁有屏幕緩沖,2。它可以直接得到設(shè)備鍵盤的物理狀態(tài)。
Layer
Layer 類代表游戲中的一個可視化元素,例如Sprite 或TiledLayer 是它的子類;這個抽象類搭好了層(Layer)的基本框架并提供了一些基本的屬性,如位置,大小,可視與否。出于優(yōu)化的考慮,不允許直接產(chǎn)生Layer 的子類(不能包外繼承)。
LayerManager
對于有著許多Layer 的游戲而言,LayerManager 通過實現(xiàn)分層次的自動渲染,從而簡化了游戲開發(fā)。它允許開發(fā)者設(shè)置一個可視窗口(View Window),表示用戶在游戲中可見的窗口;LayerManager 自動渲染游戲中的Layer,從而實現(xiàn)期望的視圖效果。
LayerManager負責管理Layer對象,并且按照指定的順序畫他們。
Sprite
Sprite 又稱“精靈”,也是一種Layer,可以顯示一幀或多幀的連續(xù)圖像。但所有的幀都是相同大小的,并且由一個Image 對象提供。Sprite 通過循環(huán)顯示每一幀,可以實現(xiàn)任意順序的動畫;Sprite 類還提供了許多變換(翻轉(zhuǎn)和旋轉(zhuǎn))模式和碰撞檢測方法,能大大簡化游戲邏輯的實現(xiàn)。
TiledLayer
TiledLayer 又稱“磚塊”,這個類允許開發(fā)者在不必使用非常大的Image對象的情況下創(chuàng)建一個大的圖像內(nèi)容。TiledLayer 有許多單元格構(gòu)成,每個單元格能顯示由一個單一Image 對象提供的一組貼圖中的某一個貼圖。單元格也能被動畫貼圖填充,動畫貼圖的內(nèi)容能非常迅速地變化;這個功能對于動畫顯示非常大的一組單元格非常有用,例如一個充滿水的動態(tài)區(qū)域。
TiledLayer更多的被用來創(chuàng)建背景,比如賽道或者其他更大的區(qū)域.