H5游戲開發之 Phaser

最近在研究H5游戲開發,于是進行了一波調研發現了這篇博客解釋的很好 HTML5游戲引擎深度測評,有興趣的可以去看看。
通過各方面的衡量和和業務的考量,最終選擇了 Phaser H5游戲框架來開發。本文主要介紹它的api,具體范例,會在第二篇進行全部詳細的提供出來;

Phaser

Via: 如果一個類在 via 列中有一個條目,則意味著您可以通過this引用快速訪問它。
您可以從任何狀態通過 this.camera 控制相機,如果游戲已全局定義,則可以通過 game.camera 控制相機。

屬性 Via 說明
Game game 管理啟動、創建子系統以及運行邏輯和渲染循環
World world 所有游戲對象所在的游戲世界
Camera camera 相機是您進入游戲世界的視角
Stage stage 舞臺是根顯示對象

Game States

屬性 Via 說明
StateManager state 創建、管理和交換您的游戲狀態
State 可以擴展的基本游戲狀態對象

Loader

屬性 Via 說明
Cache cache 緩存是所有加載的資產存儲和檢索的地方
Loader load 加載所有外部資產類型(圖像、音頻、json、xml、txt)并將它們添加到緩存中。由 States preload 方法自動調用
LoaderParser 加載器使用的靜態類來處理復雜資產類型的解析

Game Scaling

屬性 Via 說明
ScaleManager scale 跨設備管理游戲的大小和縮放
FlexGrid scale.grid 響應式布局網格(試用中)
FlexLayer 響應式網格層(試用中)

Signals

屬性 說明
Signal Signal是移相器內部事件系統
SignalBinding 管理哪些回調綁定到Signal

Plugins

屬性 Via 說明
PluginManager plugins 安裝、更新和銷毀插件
Plugin 可以擴展的基礎插件對象

Game Objects

屬性 Via 說明
GameObjectFactory add 一個輔助類,可以創建任何 Phaser 游戲對象并將它們添加到游戲世界
GameObjectCreator make 可以創建和返回任何 Phaser 游戲對象的輔助類
Group 組可以包含多個游戲對象,并具有搜索、排序、調用、更新和過濾它們的能力
InputHandler *object*.input 如果為輸入啟用了游戲對象,則該類控制所有與輸入相關的事件,包括點擊和拖動
Events *object*.events 所有游戲對象級別的事件
Create create 動態 Sprite 和 Texture 生成方法

Display

屬性 說明
Sprite 具有紋理的游戲對象,能夠運行動畫、輸入事件和物理
Image 具有紋理和輸入但沒有物理或動畫處理程序的更輕的游戲對象
TileSprite 具有可滾動和縮放的重復紋理的游戲對象
Button 一個帶有輔助方法和事件的圖像游戲對象,可將其轉換為 UI 按鈕
SpriteBatch 自定義 Sprite 批次。如果多個 Sprites 共享相同的紋理,則可以顯著加快渲染速度
Rope 具有基于條帶的紋理的關節游戲對象

Graphics

屬性 說明
Graphics 允許您繪制原始形狀(直線、矩形、圓形)、設置顏色、描邊和填充
BitmapData 為空白 Canvas 對象提供強大的接口??梢杂米?Sprite 紋理
RenderTexture 一種特殊的紋理,您可以非??焖俚乩L制 Sprites

Text

屬性 說明
Text 使用系統字體或 Web 字體顯示文本,可選擇填充、陰影和描邊
BitmapText 使用位圖字體文件的基于紋理的文本對象
RetroFont 類似于 BitmapText 對象,但使用經典的 sprite 表。每個字符都是固定寬度的

Animation

屬性 Via 說明
AnimationManager *sprite*.animations 在 Sprite 游戲對象上添加、播放和更新動畫
Animation 動畫管理器創建的基礎動畫對象
AnimationParser Phaser Loader 在內部使用它來解析來自外部文件的動畫數據
FrameData 構成動畫的 Frame 對象的集合
Frame 動畫的單個幀。存儲在 FrameData 對象中

Geometry

屬性 說明
Circle 由位置和直徑組成的 Circle 對象
Ellipse 由位置、寬度和高度組成的 Ellipse 對象
Line 由位于 Line 起點和終點的兩個點組成的 Line 對象
Point 由 x 和 y 位置組成的 Point 對象
Polygon 由一系列點組成的多邊形對象
Rectangle 由 x、y、寬度和高度組成的 Rectangle 對象
RoundedRectangle 由 x、y、寬度、高度和圓角半徑組成的矩形對象

Time

屬性 Via 說明
Time time 所有 Phaser 時間相關操作所依賴的核心內部時鐘
Timer time.create 包含一個或多個 TimerEvent 的自定義計時器。可以使用一次或設置為重復
TimerEvent time.add 單個時間相關的事件對象。屬于 Phaser.Timer

Tilemaps

屬性 說明
Tilemap 一張 Tilemap 由一個或多個 TilemapLayer 和關聯的圖塊數據組成。包含用于圖塊數據操作和 TilemapLayer 生成的方法
TilemapLayer Tilemap 中的單個圖層。繼承自 Phaser.Sprite 并負責渲染自身
Tileset 包含用于由 TilemapLayer 渲染圖塊的紋理和數據的對象
Tile 具有相關屬性的單個 Tile 對象。地圖中的每個圖塊都存在其中一個
TilemapParser 用于解析外部加載的地圖數據的靜態類。通常由 Phaser.Loader 直接調用

Math

屬性 Via 說明
Math math 包含大量與數學相關的輔助方法,包括模糊邏輯和插值
QuadTree 一個獨立的四叉樹實現。由 Arcade Physics 使用,但也可以直接使用
RandomDataGenerator rnd 可播種可重復隨機數據生成器

Network

屬性 Via 說明
Net net 瀏覽器 URL 和查詢字符串相關方法

Particles

屬性 Via 說明
Particles particles Phaser 粒子管理器。在游戲循環期間調用并更新任何關聯的粒子發射器
Emitter 基于街機物理的粒子發射器。通過 GameObjectFactory 中的 add.emitter 創建
Particle 發射器發射的單個粒子對象。擴展 Phaser.Sprite

Physics

屬性 Via 說明
Physics physics 核心物理管理器。提供對所有物理子系統的訪問

Arcade Physics

屬性 Via 說明
Arcade physics.arcade Arcade Physics 處理器。包含碰撞、重疊和移動相關的方法
Body *sprite*.body 街機物理機構。包含速度、加速度、阻力等相關屬性
Weapon game.add.weapon Arcade Physics 驅動的武器插件,用于輕松管理子彈池

Ninja Physics

默認情況下,Ninja Physics 未捆綁在 Phaser 中

屬性 Via 說明
Ninja physics.ninja Ninja物理處理器。包含碰撞、重疊和移動相關的方法
Body *sprite*.body Ninja物理身體。包含速度、加速度、阻力等相關屬性
AABB AABB Ninja物理體型
Circle 圓形Ninja物理身體類型。
Tile Tile Ninja物理身體類型

P2 Physics

屬性 Via 說明
P2 phyiscs.p2 P2物理世界。包含碰撞、重疊和移動相關的方法
Body *sprite*.body P2物理體。包含速度、加速度、阻力等相關屬性
BodyDebug P2 Body 對象的調試特定版本。呈現出其形狀以進行可視化調試
Material 用于世界響應的 P2 材質,例如摩擦和恢復
ContactMaterial 用于聯系響應的 P2 聯系材料
CollisionGroup P2碰撞組
FixtureList P2 夾具列表處理程序
PointProxy 負責將 Phaser Game World 代理到 P2 物理值
InversePointProxy 負責將 Phaser Game World 代理為反轉的 P2 物理值
Spring 一個 P2 彈簧對象
RotationalSpring P2 旋轉彈簧對象

Input

屬性 Via 說明
Input input 輸入管理器。負責處理所有輸入子系統。還負責啟用輸入的游戲對象
Pointer input.pointer 指針封裝了所有與鼠標或觸摸相關的輸入,無論它是如何生成的。在多點觸控系統上,可以同時激活多個指針。在與輸入相關的事件中,傳遞了對相應指針的引用
DeviceButton pointer.leftButton 代表鼠標或筆/手寫筆上的按鈕
Keyboard input.keyboard 鍵盤輸入處理程序。偵聽與設備相關的事件。也可以創建 Key 對象。
Key Key 對象負責監聽特定的 Key。由鍵盤類創建
KeyCode KeyCode 常量在創建新的 Key 對象時使用
Mouse input.mouse 鼠標事件處理程序。偵聽與設備相關的事件并將它們傳遞給活動指針
MSPointer input.mspointer MSPointer 事件處理程序。偵聽與設備相關的事件并將它們傳遞給活動指針
Touch input.touch 觸摸事件處理程序。偵聽與設備相關的事件并將它們傳遞給活動指針

Gamepads

屬性 Via 說明
Gamepad input.gamepad 游戲手柄管理器負責管理所有連接到設備的游戲手柄。創建 SinglePad 實例
SinglePad input.gamepad.pad<1,4> 代表一個連接的游戲手柄
DeviceButton 表示 SinglePad 實例上的按鈕

Tweens

屬性 Via 說明
TweenManager tweens Tween Manager 創建、更新和銷毀所有活動的補間
Tween 一個補間對象。通過 game.add.tween 創建。由表示補間和任何子補間的 TweenData 對象組成
TweenData TweenData 對象包含與補間相關的所有信息。由 Phaser.Tween 對象創建并屬于 Phaser.Tween 對象
Easing 包含可用于 Tweens 的所有緩動函數的靜態類

Sound

屬性 Via 說明
SoundManager sound 聲音管理器控制所有聲音對象并可以播放、循環、淡入淡出和停止聲音
Sound 聲音對象??芍苯硬シ?、暫停、停止,并可調節音量
AudioSprite Audio Sprite 是一個 Sound 對象,具有代表音頻部分的相關標記數據

System

屬性 Via 說明
Canvas 包含 Canvas 創建和操作方法的靜態類。比如添加到dom,設置觸摸動作,平滑和圖像渲染
Device game.device Device 類在啟動時檢查系統功能和設置,并存儲它們供以后訪問
DOM 包含 DOM 特定方法的靜態類,包括偏移處理、視口校準和邊界檢查
RequestAnimationFrame game.raf 為核心游戲更新循環抽象出 RAF 或 setTimeOut 的使用

Utils

屬性 Via 說明
ArraySet ArraySet 是一個 Set 數據結構(項目在集合內必須是唯一的),它也保持順序
ArrayUtils 特定于數組的方法,例如 getRandomItem、shuffle、transposeMatrix、rotate 和 numberArray
Color Phaser.Color 是一組輔助顏色操作和轉換的靜態方法
Debug game.debug 顯示游戲對象調試信息的方法集合
LinkedList 一個基本的鏈表數據結構
Utils 對象和字符串檢查和修改的實用方法。包括getProperty、pad、isPlainObject、extend和mixin
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容