H5游戲開(kāi)發(fā)之 Phaser

最近在研究H5游戲開(kāi)發(fā)拼窥,于是進(jìn)行了一波調(diào)研發(fā)現(xiàn)了這篇博客解釋的很好 HTML5游戲引擎深度測(cè)評(píng)蹈矮,有興趣的可以去看看夕土。
通過(guò)各方面的衡量和和業(yè)務(wù)的考量呐馆,最終選擇了 Phaser H5游戲框架來(lái)開(kāi)發(fā)。本文主要介紹它的api,具體范例,會(huì)在第二篇進(jìn)行全部詳細(xì)的提供出來(lái)雹舀;

Phaser

Via: 如果一個(gè)類在 via 列中有一個(gè)條目,則意味著您可以通過(guò)this引用快速訪問(wèn)它粗俱。
您可以從任何狀態(tài)通過(guò) this.camera 控制相機(jī)说榆,如果游戲已全局定義,則可以通過(guò) game.camera 控制相機(jī)。

屬性 Via 說(shuō)明
Game game 管理啟動(dòng)签财、創(chuàng)建子系統(tǒng)以及運(yùn)行邏輯和渲染循環(huán)
World world 所有游戲?qū)ο笏诘挠螒蚴澜?/td>
Camera camera 相機(jī)是您進(jìn)入游戲世界的視角
Stage stage 舞臺(tái)是根顯示對(duì)象

Game States

屬性 Via 說(shuō)明
StateManager state 創(chuàng)建稍味、管理和交換您的游戲狀態(tài)
State 可以擴(kuò)展的基本游戲狀態(tài)對(duì)象

Loader

屬性 Via 說(shuō)明
Cache cache 緩存是所有加載的資產(chǎn)存儲(chǔ)和檢索的地方
Loader load 加載所有外部資產(chǎn)類型(圖像、音頻荠卷、json、xml烛愧、txt)并將它們添加到緩存中油宜。由 States preload 方法自動(dòng)調(diào)用
LoaderParser 加載器使用的靜態(tài)類來(lái)處理復(fù)雜資產(chǎn)類型的解析

Game Scaling

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

Signals

屬性 說(shuō)明
Signal Signal是移相器內(nèi)部事件系統(tǒng)
SignalBinding 管理哪些回調(diào)綁定到Signal

Plugins

屬性 Via 說(shuō)明
PluginManager plugins 安裝、更新和銷毀插件
Plugin 可以擴(kuò)展的基礎(chǔ)插件對(duì)象

Game Objects

屬性 Via 說(shuō)明
GameObjectFactory add 一個(gè)輔助類怜姿,可以創(chuàng)建任何 Phaser 游戲?qū)ο蟛⑺鼈兲砑拥接螒蚴澜?/td>
GameObjectCreator make 可以創(chuàng)建和返回任何 Phaser 游戲?qū)ο蟮妮o助類
Group 組可以包含多個(gè)游戲?qū)ο笊髟⒕哂兴阉鳌⑴判虿茁⒄{(diào)用蚁堤、更新和過(guò)濾它們的能力
InputHandler *object*.input 如果為輸入啟用了游戲?qū)ο螅瑒t該類控制所有與輸入相關(guān)的事件但狭,包括點(diǎn)擊和拖動(dòng)
Events *object*.events 所有游戲?qū)ο蠹?jí)別的事件
Create create 動(dòng)態(tài) Sprite 和 Texture 生成方法

Display

屬性 說(shuō)明
Sprite 具有紋理的游戲?qū)ο笈軌蜻\(yùn)行動(dòng)畫(huà)、輸入事件和物理
Image 具有紋理和輸入但沒(méi)有物理或動(dòng)畫(huà)處理程序的更輕的游戲?qū)ο?/td>
TileSprite 具有可滾動(dòng)和縮放的重復(fù)紋理的游戲?qū)ο?/td>
Button 一個(gè)帶有輔助方法和事件的圖像游戲?qū)ο罅⒋牛蓪⑵滢D(zhuǎn)換為 UI 按鈕
SpriteBatch 自定義 Sprite 批次呈队。如果多個(gè) Sprites 共享相同的紋理,則可以顯著加快渲染速度
Rope 具有基于條帶的紋理的關(guān)節(jié)游戲?qū)ο?/td>

Graphics

屬性 說(shuō)明
Graphics 允許您繪制原始形狀(直線唱歧、矩形宪摧、圓形)、設(shè)置顏色颅崩、描邊和填充
BitmapData 為空白 Canvas 對(duì)象提供強(qiáng)大的接口几于。可以用作 Sprite 紋理
RenderTexture 一種特殊的紋理沿后,您可以非逞嘏恚快速地繪制 Sprites

Text

屬性 說(shuō)明
Text 使用系統(tǒng)字體或 Web 字體顯示文本,可選擇填充得运、陰影和描邊
BitmapText 使用位圖字體文件的基于紋理的文本對(duì)象
RetroFont 類似于 BitmapText 對(duì)象膝蜈,但使用經(jīng)典的 sprite 表。每個(gè)字符都是固定寬度的

Animation

屬性 Via 說(shuō)明
AnimationManager *sprite*.animations 在 Sprite 游戲?qū)ο笊咸砑尤鄄簟⒉シ藕透聞?dòng)畫(huà)
Animation 動(dòng)畫(huà)管理器創(chuàng)建的基礎(chǔ)動(dòng)畫(huà)對(duì)象
AnimationParser Phaser Loader 在內(nèi)部使用它來(lái)解析來(lái)自外部文件的動(dòng)畫(huà)數(shù)據(jù)
FrameData 構(gòu)成動(dòng)畫(huà)的 Frame 對(duì)象的集合
Frame 動(dòng)畫(huà)的單個(gè)幀饱搏。存儲(chǔ)在 FrameData 對(duì)象中

Geometry

屬性 說(shuō)明
Circle 由位置和直徑組成的 Circle 對(duì)象
Ellipse 由位置、寬度和高度組成的 Ellipse 對(duì)象
Line 由位于 Line 起點(diǎn)和終點(diǎn)的兩個(gè)點(diǎn)組成的 Line 對(duì)象
Point 由 x 和 y 位置組成的 Point 對(duì)象
Polygon 由一系列點(diǎn)組成的多邊形對(duì)象
Rectangle 由 x置逻、y推沸、寬度和高度組成的 Rectangle 對(duì)象
RoundedRectangle 由 x、y、寬度鬓催、高度和圓角半徑組成的矩形對(duì)象

Time

屬性 Via 說(shuō)明
Time time 所有 Phaser 時(shí)間相關(guān)操作所依賴的核心內(nèi)部時(shí)鐘
Timer time.create 包含一個(gè)或多個(gè) TimerEvent 的自定義計(jì)時(shí)器肺素。可以使用一次或設(shè)置為重復(fù)
TimerEvent time.add 單個(gè)時(shí)間相關(guān)的事件對(duì)象宇驾。屬于 Phaser.Timer

Tilemaps

屬性 說(shuō)明
Tilemap 一張 Tilemap 由一個(gè)或多個(gè) TilemapLayer 和關(guān)聯(lián)的圖塊數(shù)據(jù)組成倍靡。包含用于圖塊數(shù)據(jù)操作和 TilemapLayer 生成的方法
TilemapLayer Tilemap 中的單個(gè)圖層。繼承自 Phaser.Sprite 并負(fù)責(zé)渲染自身
Tileset 包含用于由 TilemapLayer 渲染圖塊的紋理和數(shù)據(jù)的對(duì)象
Tile 具有相關(guān)屬性的單個(gè) Tile 對(duì)象课舍。地圖中的每個(gè)圖塊都存在其中一個(gè)
TilemapParser 用于解析外部加載的地圖數(shù)據(jù)的靜態(tài)類塌西。通常由 Phaser.Loader 直接調(diào)用

Math

屬性 Via 說(shuō)明
Math math 包含大量與數(shù)學(xué)相關(guān)的輔助方法,包括模糊邏輯和插值
QuadTree 一個(gè)獨(dú)立的四叉樹(shù)實(shí)現(xiàn)筝尾。由 Arcade Physics 使用捡需,但也可以直接使用
RandomDataGenerator rnd 可播種可重復(fù)隨機(jī)數(shù)據(jù)生成器

Network

屬性 Via 說(shuō)明
Net net 瀏覽器 URL 和查詢字符串相關(guān)方法

Particles

屬性 Via 說(shuō)明
Particles particles Phaser 粒子管理器。在游戲循環(huán)期間調(diào)用并更新任何關(guān)聯(lián)的粒子發(fā)射器
Emitter 基于街機(jī)物理的粒子發(fā)射器筹淫。通過(guò) GameObjectFactory 中的 add.emitter 創(chuàng)建
Particle 發(fā)射器發(fā)射的單個(gè)粒子對(duì)象站辉。擴(kuò)展 Phaser.Sprite

Physics

屬性 Via 說(shuō)明
Physics physics 核心物理管理器。提供對(duì)所有物理子系統(tǒng)的訪問(wèn)

Arcade Physics

屬性 Via 說(shuō)明
Arcade physics.arcade Arcade Physics 處理器损姜。包含碰撞饰剥、重疊和移動(dòng)相關(guān)的方法
Body *sprite*.body 街機(jī)物理機(jī)構(gòu)。包含速度薛匪、加速度捐川、阻力等相關(guān)屬性
Weapon game.add.weapon Arcade Physics 驅(qū)動(dòng)的武器插件,用于輕松管理子彈池

Ninja Physics

默認(rèn)情況下逸尖,Ninja Physics 未捆綁在 Phaser 中

屬性 Via 說(shuō)明
Ninja physics.ninja Ninja物理處理器古沥。包含碰撞、重疊和移動(dòng)相關(guān)的方法
Body *sprite*.body Ninja物理身體娇跟。包含速度岩齿、加速度、阻力等相關(guān)屬性
AABB AABB Ninja物理體型
Circle 圓形Ninja物理身體類型苞俘。
Tile Tile Ninja物理身體類型

P2 Physics

屬性 Via 說(shuō)明
P2 phyiscs.p2 P2物理世界盹沈。包含碰撞、重疊和移動(dòng)相關(guān)的方法
Body *sprite*.body P2物理體吃谣。包含速度乞封、加速度、阻力等相關(guān)屬性
BodyDebug P2 Body 對(duì)象的調(diào)試特定版本岗憋。呈現(xiàn)出其形狀以進(jìn)行可視化調(diào)試
Material 用于世界響應(yīng)的 P2 材質(zhì)肃晚,例如摩擦和恢復(fù)
ContactMaterial 用于聯(lián)系響應(yīng)的 P2 聯(lián)系材料
CollisionGroup P2碰撞組
FixtureList P2 夾具列表處理程序
PointProxy 負(fù)責(zé)將 Phaser Game World 代理到 P2 物理值
InversePointProxy 負(fù)責(zé)將 Phaser Game World 代理為反轉(zhuǎn)的 P2 物理值
Spring 一個(gè) P2 彈簧對(duì)象
RotationalSpring P2 旋轉(zhuǎn)彈簧對(duì)象

Input

屬性 Via 說(shuō)明
Input input 輸入管理器。負(fù)責(zé)處理所有輸入子系統(tǒng)仔戈。還負(fù)責(zé)啟用輸入的游戲?qū)ο?/td>
Pointer input.pointer 指針?lè)庋b了所有與鼠標(biāo)或觸摸相關(guān)的輸入关串,無(wú)論它是如何生成的拧廊。在多點(diǎn)觸控系統(tǒng)上,可以同時(shí)激活多個(gè)指針晋修。在與輸入相關(guān)的事件中吧碾,傳遞了對(duì)相應(yīng)指針的引用
DeviceButton pointer.leftButton 代表鼠標(biāo)或筆/手寫(xiě)筆上的按鈕
Keyboard input.keyboard 鍵盤(pán)輸入處理程序。偵聽(tīng)與設(shè)備相關(guān)的事件墓卦。也可以創(chuàng)建 Key 對(duì)象倦春。
Key Key 對(duì)象負(fù)責(zé)監(jiān)聽(tīng)特定的 Key。由鍵盤(pán)類創(chuàng)建
KeyCode KeyCode 常量在創(chuàng)建新的 Key 對(duì)象時(shí)使用
Mouse input.mouse 鼠標(biāo)事件處理程序落剪。偵聽(tīng)與設(shè)備相關(guān)的事件并將它們傳遞給活動(dòng)指針
MSPointer input.mspointer MSPointer 事件處理程序溅漾。偵聽(tīng)與設(shè)備相關(guān)的事件并將它們傳遞給活動(dòng)指針
Touch input.touch 觸摸事件處理程序。偵聽(tīng)與設(shè)備相關(guān)的事件并將它們傳遞給活動(dòng)指針

Gamepads

屬性 Via 說(shuō)明
Gamepad input.gamepad 游戲手柄管理器負(fù)責(zé)管理所有連接到設(shè)備的游戲手柄著榴。創(chuàng)建 SinglePad 實(shí)例
SinglePad input.gamepad.pad<1,4> 代表一個(gè)連接的游戲手柄
DeviceButton 表示 SinglePad 實(shí)例上的按鈕

Tweens

屬性 Via 說(shuō)明
TweenManager tweens Tween Manager 創(chuàng)建、更新和銷毀所有活動(dòng)的補(bǔ)間
Tween 一個(gè)補(bǔ)間對(duì)象屁倔。通過(guò) game.add.tween 創(chuàng)建脑又。由表示補(bǔ)間和任何子補(bǔ)間的 TweenData 對(duì)象組成
TweenData TweenData 對(duì)象包含與補(bǔ)間相關(guān)的所有信息。由 Phaser.Tween 對(duì)象創(chuàng)建并屬于 Phaser.Tween 對(duì)象
Easing 包含可用于 Tweens 的所有緩動(dòng)函數(shù)的靜態(tài)類

Sound

屬性 Via 說(shuō)明
SoundManager sound 聲音管理器控制所有聲音對(duì)象并可以播放锐借、循環(huán)问麸、淡入淡出和停止聲音
Sound 聲音對(duì)象〕瑁可直接播放严卖、暫停、停止布轿,并可調(diào)節(jié)音量
AudioSprite Audio Sprite 是一個(gè) Sound 對(duì)象哮笆,具有代表音頻部分的相關(guān)標(biāo)記數(shù)據(jù)

System

屬性 Via 說(shuō)明
Canvas 包含 Canvas 創(chuàng)建和操作方法的靜態(tài)類。比如添加到dom汰扭,設(shè)置觸摸動(dòng)作稠肘,平滑和圖像渲染
Device game.device Device 類在啟動(dòng)時(shí)檢查系統(tǒng)功能和設(shè)置,并存儲(chǔ)它們供以后訪問(wèn)
DOM 包含 DOM 特定方法的靜態(tài)類萝毛,包括偏移處理项阴、視口校準(zhǔn)和邊界檢查
RequestAnimationFrame game.raf 為核心游戲更新循環(huán)抽象出 RAF 或 setTimeOut 的使用

Utils

屬性 Via 說(shuō)明
ArraySet ArraySet 是一個(gè) Set 數(shù)據(jù)結(jié)構(gòu)(項(xiàng)目在集合內(nèi)必須是唯一的),它也保持順序
ArrayUtils 特定于數(shù)組的方法笆包,例如 getRandomItem环揽、shuffle、transposeMatrix庵佣、rotate 和 numberArray
Color Phaser.Color 是一組輔助顏色操作和轉(zhuǎn)換的靜態(tài)方法
Debug game.debug 顯示游戲?qū)ο笳{(diào)試信息的方法集合
LinkedList 一個(gè)基本的鏈表數(shù)據(jù)結(jié)構(gòu)
Utils 對(duì)象和字符串檢查和修改的實(shí)用方法歉胶。包括getProperty、pad秧了、isPlainObject跨扮、extend和mixin
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子衡创,更是在濱河造成了極大的恐慌帝嗡,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件璃氢,死亡現(xiàn)場(chǎng)離奇詭異哟玷,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)一也,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)巢寡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人椰苟,你說(shuō)我怎么就攤上這事抑月。” “怎么了舆蝴?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵谦絮,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我洁仗,道長(zhǎng)层皱,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任赠潦,我火速辦了婚禮叫胖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘她奥。我一直安慰自己瓮增,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布哩俭。 她就那樣靜靜地躺著钉赁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪携茂。 梳的紋絲不亂的頭發(fā)上你踩,一...
    開(kāi)封第一講書(shū)人閱讀 49,046評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音讳苦,去河邊找鬼带膜。 笑死,一個(gè)胖子當(dāng)著我的面吹牛鸳谜,可吹牛的內(nèi)容都是我干的膝藕。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼咐扭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼芭挽!你這毒婦竟也來(lái)了滑废?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤袜爪,失蹤者是張志新(化名)和其女友劉穎蠕趁,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體辛馆,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡俺陋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了昙篙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腊状。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖苔可,靈堂內(nèi)的尸體忽然破棺而出缴挖,到底是詐尸還是另有隱情,我是刑警寧澤焚辅,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布醇疼,位于F島的核電站,受9級(jí)特大地震影響法焰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜倔毙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一埃仪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧陕赃,春花似錦卵蛉、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至诉儒,卻和暖如春葡缰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背忱反。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工泛释, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人温算。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓怜校,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親注竿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子茄茁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容