联系
我们
投稿
反馈
评论 返回
顶部

内容字号: 默认 大号超大号

段落设置: 段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

HTML5游戏框架大军中的一乘轻骑Phaser

2016-04-19 13:18 出处:互联网 人气: 评论(
鹏程狗友 丹61库珀 恶魔的贴身保镖 绝爱之小受皇后 风起兰芳 舍金娜 品性堂 howyouremindme 神霸天机 迦南诗选1486 信封大师 易升书苑 虚灵魔术师

下载这个zip文件。它包含了一个hellophaser目录,里面有一个JavaScript文件、一个index.html和一个PNG文件。拷贝Hellophaser目录到Web服务器根目录。

这是一段关于怪物要糖果demo代码的漫长旅程,我希望能帮助你学习Phaser,在不久的将来你可以开发很酷的游戏。

我们已经知道了游戏状态,让我们逐个查看他们:

Candy.Game原型有三个函数:

网友GavinAnderegg :大约一年前,我和一些朋友在一个12个小时的黑客马拉松活动中使用Phaser制作了一个小游戏。它是一个很好的小框架,虽然我们没有真正使用它的很多功能,但它很容易上手。

在这里,我们设置所有将使用的变量。


让我们浏览这些代码:

正如你所看到的,我们需要三个值:图像x轴绝对坐标(舞台宽度减去图像宽度再除以2),图像y轴绝对坐标(类似计算)以及图像的名称(我们已经在boot.js文件中加载)。

create()函数启动游戏的下一个状态MainMenu,当所有资源加载完毕就会显示游戏菜单。

选择编辑器

这并不意味着你不能以结构化方式创建游戏。这只是意味着它不是强制性的。这也意味着Phaser内部可以轻松地改造。

函数首先定义三个值:

这是按钮的spritesheet,包含状态标签:

糖果随机下落y坐标,基于糖果自身的高度

在这里candy.png我们有5种不同类型的糖果。图片尺寸410x98px,但是单个元素的大小是82x98px,在load.spritesheet()函数中定义。玩家spritesheet以同样的方式加载。


boot.js是我们将定义主要游戏对象Candy(你可以取个你喜欢的名字)的JavaScript文件。下面是boot.js文件的源代码:

当需要支持桌面和移动平台,有越来越多的不同数量的潜在输入选项。Phaser支持键盘、鼠标、触摸、MSPointer(目前Pointer在IE11下)以及它们的组合。例如,在Windows Surface设备上,你可以在鼠标和触摸两者之间切换,或同时使用两者。

缩放选项

整合进核心库的是ArcadePhysics和ArcadeParticles系统。它们是简单的AABB轻量级库,允许你对任何精灵使用重力和运动,然后进行测试以便用于碰撞和分离。使用基于世界的四叉树有助于最小化碰撞测试,你能通过耗费很少的时间得到相当好的结果。

暂停游戏

字体是Arial,40像素高,黄色,可以设置描边(颜色和厚度),文本中心对齐。

我们已经了解了游戏机制,核心理念,以及游戏玩法。现在是时候去看代码的其他部分了:缩放屏幕、加载资源和管理按钮点击等等。


这听起来好像是一个奇怪的“特性”,但实际上这点相当有吸引力。Phaser内部不使用任何人造的OO风格编程。没有大量的继承链和组件系统,你也不必强迫对象设计为任何固定的类结构。只有简单直接的原型链,JavaScript最自然的使用方式。

简单易用的资源加载

使用Phaser创建第一个游戏

在这个示例中,制作的游戏名字叫怪物要糖果。首先介绍项目的结构,以便你可以理解整个游戏玩法。我们将根据游戏运行的逻辑顺序依次讲解:装载图片资源、创建主菜单、真正的游戏循环。你可以点击链接先试玩怪物要糖果。

Phaser内置的资源加载器可以处理:

“Boot”是一个状态名,Candy.Boot是一个对象(在下面代码中定义),我们开始进入状态时将被执行。我们为Boot(配置),Preloader(加载资源),MainMenu(你猜对了,这是游戏主菜单)和Game(游戏主循环)添加状态。最后一行,game.state.start(“Boot”),启动Boot状态,Candy.Boot对象将被执行。



this.load.image()中第一个参数是我们给图像取的名字,第二个是图像文件的路径。

因为浏览器的一些安全机制,最好使用本地web服务器如iis,apache来开发HTML5游戏,如果直接双击打开html页面,可能有些功能不能正常运行。


对于你的游戏,这意味着如果浏览器支持WebGL,那么玩家就会获得更加流畅的游戏体验。WebGL在桌面平台已经非常普遍,但在移动平台还在发展初期,即便如此,这也是HTML5游戏发展的未来,所以支持它非常重要。最新发布的Phaser版本引入了WebGL着色器和过滤支持,并且即将发布的版本将实现法线贴图(normal map),所以你将能使用新工具诸如Sprite Lamp。

【编者按】HTML5游戏以其“低门槛、低成本、简单有趣、易于分享”的特点受到了广大玩家的喜爱和业界人士的关注。不论是新手还是企业专业团队,从无到有制作一个游戏并不总是一个好主意,选用适合自己的游戏引擎或者框架才是正确的途径。本文将介绍HTML5游戏框架大军中的一乘轻骑——Phaser。

Phaser主要特色

朴素的JavaScript编程风格

index.html 文件


现在你已经了解了Phaser游戏框架的基础。恭喜你!

然而,内置的物理系统不可能适合所有类型的游戏,所以物理系统可以轻易地替换,并且没有物理属性绑定到实际的精灵(而是身体组件),所以可以被替换成诸如Box2D或p2.js。补间系统也被整合进,允许你轻易地补间对象或属性。如果游戏暂停,那么所有补间也将自动暂停,需要时再继续。

本文为CSDN原创文章,未经允许不得转载,如需转载请联系market#csdn.net(#换成@)

为确保糖果离开游戏屏幕时被销毁,我们将checkWorldBounds设为true。糖果离开屏幕时,函数events.onOutOfBounds()将被调用;我们用它调用removecandy()函数。设置锚点在糖果上,使其绕轴线旋转。在这里我们设置了rotateMe变量,在update()循环中转动糖果;我们选择-2和+2之间的一个值。最后一行代码将新创建的糖果加入到糖果群组,这样我们就可以不停的遍历他们。

分享给小伙伴们:
本文标签:

更多文章

相关文章

Copyright © 2002-2014 版权所有