Phaser 游戲?qū)嵗ㄒ唬?/h1>

phaser是一個基于pixi渲染引擎的開發(fā)框架,用其api文檔里的一句話來形容就是:你所見的世界是一幅油畫港华。Phaser里最基本的對象或者說是元素就是World,如果有興趣断部,你也可以把你的canvas當做藝術(shù)品仿粹,做出你想要的東西。Phaser的API和教程介紹已經(jīng)很多了崭添,不做重復(fù)寓娩,本文重點分享一下如何使用 phaser,webpack, es6 系統(tǒng)的開發(fā)一款小游戲呼渣。

環(huán)境搭建

  • 通常開發(fā)一款H5的phaser游戲的時候棘伴,如果通過es5語法來實現(xiàn)一些函數(shù)操作或者繼承框架的類函數(shù)比較復(fù)雜,下文中我會詳細介紹屁置。所以我們需要引入babel模塊來使用es6進行代碼開發(fā)焊夸。
  • phaser雖然提供了強大的API,減少了很多的代碼量蓝角,但是做一款不復(fù)雜但是完整的游戲在一個JS文件中無論是閱讀還是維護相當?shù)牟环奖愦镜兀园凑請鼍盎蛘吖δ芊职l(fā)成多個模塊進行開發(fā)是有必要的
  • 相關(guān)package.json可以參考https://github.com/lean/phaser-es6-webpack怖糊。
  • 核心需求主要是 1. babel全家桶,如果你需要代碼里進行對象結(jié)構(gòu)等es7新特性可以引入babel-preset-stage-2 2. webpack以及對應(yīng)的本地服務(wù)器 3. phaser v2.6.2(如果你不需要新增特性的話颇象,不推薦使用phaser-ce)伍伤;

webpack.config配置

var path = require('path');
var webpack = require('webpack');
var HtmlWebpackPlugin = require("html-webpack-plugin");
var phaserModule = path.join(__dirname, '/node_modules/phaser/');
var phaser = path.join(phaserModule, 'build/custom/phaser-arcade-physics.js');
var pixi = path.join(phaserModule, 'build/custom/pixi.js');

配置相應(yīng)的庫文件路徑,這里我們使用的是帶有arcade物理引擎的phaser版本遣钳,這里如果你使用的是phaser-ce版本的話扰魂,默認的物理引擎是p2, 所以如果你不打算使用P2的話蕴茴,代碼運行會報p2對象未定義的錯誤劝评。

    entry: {
        app: [
            path.resolve(__dirname, "./Parkour/main.js")
        ]
    }

在module 的export里,我們首先要定義入口文件路徑.

接下來是配置webpack中重要的功能 -- Loaders

   module: {
        loaders: [
            {
                test: /\.json$/,
                loader: 'json-loader'
            },
            {
                test: /\.js$/,
                exclude: /node-modules/,
                loader: 'babel-loader'
            },
            {
                test: /\.(png|jpg)$/,
                loader: 'url-loader?limit=1024&name=[name].[ext]'
            },
            {
                test: /pixi\.js$/,
                loader: 'expose-loader?PIXI'
            },
            {
                test: /phaser-arcade-physics\.js$/,
                loader: 'expose-loader?Phaser'
            }
        ]
    }

上面是通過正則在配置文件中綁定loaders
test部分是一個匹配被處理文件后綴名的正則表達式倦淀,上面是針對幾種不同格式的文件所用到相對應(yīng)的loader:

  1. json-loader用來處理對應(yīng)的json文件轉(zhuǎn)為js文件蒋畜,你可以直接在js代碼中調(diào)用它
  2. babel-loader用來將es6, es7的js文件轉(zhuǎn)為可供現(xiàn)代瀏覽器識別的es5格式的js文件。
  3. url-loader類似于file-loader撞叽,但是它添加了limit屬性姻成,如果文件大小<limit,會自動將其轉(zhuǎn)為base64編碼減少資源的請求數(shù)。
  4. 最后針對pixi和phaser的第三方j(luò)s源碼進行模塊化愿棋,這里通過expose將模塊添加到全局對象Phaser和PIXI, 使得phaser能夠正常調(diào)用pixi文件中的PIXI對象 (webpack2 需要寫全稱expose-loader).
    entry: {
        app: [
            path.resolve(__dirname, "./Parkour/main.js")
        ],
        vendor: ['pixi', 'phaser']
    }科展,
    plugins: [
        new webpack.optimize.CommonsChunkPlugin({
            name: 'vendor',
            filename: 'vendor.bundle.js'
        })
    ]

針對CommonsChunkPlugin的使用,首先在入口配置中添加vendor糠雨,寫入要打包的第三方庫才睹,然后我們實例化webpack的公共代碼提取插件,將配置名為vendor里的第三方代碼庫進行合并。這樣就可以將phaser, pixi以及其他業(yè)務(wù)需要引入的庫文件合并成vendor.bundle.js

  • webpack.config的詳細配置見:點我
  • 生產(chǎn)環(huán)境下的webpack.config: 點我
下一章: phaser游戲制作的初始化設(shè)置甘邀。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者

  • 序言:七十年代末琅攘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子松邪,更是在濱河造成了極大的恐慌乎澄,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件测摔,死亡現(xiàn)場離奇詭異,居然都是意外死亡解恰,警方通過查閱死者的電腦和手機锋八,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來护盈,“玉大人挟纱,你說我怎么就攤上這事「危” “怎么了紊服?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵檀轨,是天一觀的道長。 經(jīng)常有香客問我欺嗤,道長参萄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任煎饼,我火速辦了婚禮讹挎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吆玖。我一直安慰自己筒溃,他們只是感情好,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布沾乘。 她就那樣靜靜地躺著怜奖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪翅阵。 梳的紋絲不亂的頭發(fā)上歪玲,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天,我揣著相機與錄音怎顾,去河邊找鬼读慎。 笑死,一個胖子當著我的面吹牛槐雾,可吹牛的內(nèi)容都是我干的夭委。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼募强,長吁一口氣:“原來是場噩夢啊……” “哼株灸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起擎值,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤慌烧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后鸠儿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體屹蚊,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年进每,在試婚紗的時候發(fā)現(xiàn)自己被綠了汹粤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡田晚,死狀恐怖嘱兼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情贤徒,我是刑警寧澤芹壕,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布汇四,位于F島的核電站,受9級特大地震影響踢涌,放射性物質(zhì)發(fā)生泄漏通孽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一斯嚎、第九天 我趴在偏房一處隱蔽的房頂上張望利虫。 院中可真熱鬧,春花似錦堡僻、人聲如沸糠惫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽硼讽。三九已至,卻和暖如春牲阁,著一層夾襖步出監(jiān)牢的瞬間固阁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工城菊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留备燃,地道東北人。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓凌唬,卻偏偏與公主長得像并齐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子客税,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

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

  • GitChat技術(shù)雜談 前言 本文較長况褪,為了節(jié)省你的閱讀時間,在文前列寫作思路如下: 什么是 webpack更耻,它要...
    蕭玄辭閱讀 12,698評論 7 110
  • 無意中看到zhangwnag大佬分享的webpack教程感覺受益匪淺测垛,特此分享以備自己日后查看,也希望更多的人看到...
    小小字符閱讀 8,178評論 7 35
  • webpack 介紹 webpack 是什么 為什么引入新的打包工具 webpack 核心思想 webpack 安...
    yxsGert閱讀 6,480評論 2 71
  • 寫在開頭 先說說為什么要寫這篇文章, 最初的原因是組里的小朋友們看了webpack文檔后, 表情都是這樣的: (摘...
    Lefter閱讀 5,297評論 4 31
  • “哎呀锯七,旁邊哪位啊,別撞我好嗎”本來就擠讶隐,還撞來撞去的!不要活了久又! “……”氣死我了巫延,竟然一點都沒有要挪一挪的意思...
    清風(fēng)曦來閱讀 236評論 1 1