![]()
功能特点(Features)
易维护代码(Easy Asset Loading) Phaser可以加载图片,音频文件,数据文件,文本文件和自动解析精灵图和纹理地图集数据(出口纹理封隔器或Flash CS6)
屏幕(Cameras) 查看你的游戏窗口,你可以有多个摄像头,每个摄像头可以分为一个独特的大小区域,屏幕上任何位置,或窗口规模,缩放和旋转,并有摄像效果,如晃动,闪光灯和褪色。他们还可以按照精灵定制盲区。
精灵和游戏物体(Sprites and GameObjects) Phaser内置游戏对象的物理属性,包括速度,加速度,弹性和阻力。它们可以缩放,旋转和碰撞在一起。scrollFactor属性允许他们一些漂亮的视差效果、屏幕以不同的速度滚动。
组(Groups) 组允许您轻松对象回收(例如:方便了发射弹药)游戏物体捆绑在一起。组也可以与其他团体或者精灵相撞。您还可以快速设置所有下级组和通话功能的可视性。
动画(Animation) 无论从精灵表或纹理地图集数据(JSON数组格式)支持动画精灵。动画播放控制,包括循环,一个fps基于定时器和自定义帧。
滚动区(Scroll Zones) 滚动的区域,可以在任何图像无缝地在任何方向滚动。或者,您可以创建多个滚动区域内一个单一的形象。不断循环有用的游戏背景和效果。
碰撞(Collision) 有一个四叉树的精灵,精灵,精灵集合或集合集合碰撞系统。以及大量的几何交集方法(线与线,线与圆,圆与矩形和多边形)。
颗粒(Particles) Phaser带有一个基本的触发器类,可以在你的控制下放出精灵。无论是在突发或以平稳的速度触发粒子。颗粒可以反弹,旋转,缩放,并有自己的生命周期值。
输入(Input) 有本地的键盘,鼠标和触摸处理(MSPointer事件即将推出)
舞台(Stage) 舞台是你的游戏生活。您可以轻松地改变其在浏览器的位置,宽度,高度,背景颜色(透明的背景上,有你的游戏)和StageScaleMode内。
窗口(World) 窗口是你的游戏的中心。这就是所有的游戏对象,颗粒和其他对象的生存区。窗口可以是任意大小,对象被定位在它里面。您可以使用屏幕查看到窗口。
声音(Sound) 目前,Phaser使用一个基本的WebAudio实现进行播放。在这方面需要做很多工作,但是,因为它代表你可以加载和播放音乐和效果。
状态管理(State Management) 对于较大的游戏,它是非常有用,进入游戏状态down into States,即主菜单,1级,GAMEOVER,Phaser支持状态管理JavaScript和typescript。或者,你可以忽略的状态完全建立你游戏的几个核心功能。
缓存(Cache) 所有加载的资源都存储在一个易于访问游戏缓存,它可以清除之间的状态变化 或通过坚持了整场比赛。
多格地图(Tilemaps) Phaser将本地解析为CSV tilemap的数据或JSON接口的多格地图。它支持分层平铺图,图层的可见性和基于层tilemap的碰撞,所以你可以在一种无形的tilemap层,如果你想你的精灵碰撞。
游戏缩放(Game Scaling) 游戏缩放在你的控制之下。轻松删除URL/状态栏移动brpwsers(iOS和Android),并启用比例缩放,固定的大小和方向检查。
进展中的工作(Work in Progress) 我们的一些功能,我们知道Phaser缺乏,这里是我们的当前优先级列表:
1、更好的声音控制(音频精灵,平移,循环) 2、MSPointer支持 3、文本渲染(位图字体,Canvas文本,AngelFont,Glyph设计) 4、按钮和其他基本的UI
在此之外,还有很多其他的事情,我们计划增加,如WebGL的支持,support, Spine/Spriter的动画格式的支持,倾斜碰撞多格,路径寻找,并支持自定义插件。但是,上面的列表中的优先项目,绝不详尽!然而,我们觉得,现在紧紧锁定Phaser的核心结构,所以安全使用,创建一定规模的小游戏。
测试套件(Test Suite) Phaser不断增长的测试套件。就个人而言,我们更好地学习看小成品代码示例,所以我们创建测试每一个新功能,增加很多,其中。“测试”文件夹里面,你会发现当前设置。如果你写了一个特别好的测试,那么请发送给我们。
运行测试需要通过本地Web服务器(从您的浏览器,以避免文件的访问权限错误)。
确保通过您的Web服务器,您可以浏览到“测试”文件夹中。如果你有PHP的安装,然后启动:
测试/index.php
眼下测试套件需要PHP,但我们会尽快删除此规定。
您也可以浏览Phaser的在线测试套件。
贡献(Contributing) Phaser是在早期阶段,虽然我们还有很多添加到它,我们希望只得到它在那里,并与大家分享。
如果你发现一个bug(极有可能),那么请在github上报告。
如果你有功能要求,或已写了一个小游戏或演示,显示了在使用Phaser,那么请您联系我们。我们很乐意听到你的。Phaser一部分的HTML5游戏开发团队的论坛或在此网站上发表评论,你可以做到这一点。
错误?(Bugs) 请与尽可能多的信息并将它们提交到github的问题跟踪。
更改日志
最新版本:0.9.5 (github上) 发行时间:2013年5月2日 总例子:71
V0.9.5
*移动启动屏幕和PauseScreen的阶段到自己的类(系统/屏幕/启动屏幕和PauseScreen)。 *更新了PauseScreen展现出微妙的动画效果,使其更容易创建自己的有趣暂停画面。 *修改的游戏,所以它分裂成3的循环- bootLoop pauseLoop和环路(核心循环)。 *更新了新标识和新的色彩周期效应的启动屏幕。 *增加了Game.isRunning的-设置为true,一旦Game.boot过程就结束了,如果你给一些功能的构造函数或状态。 即使*修正小bug在Signal.removeAll可以尝试缩短_bindings的不确定。 *添加新FXManager用于处理所有特效屏幕(很快其他游戏对象) *移除闪存,褪色和动摇从屏幕类搬到新的SpecialFX项目。 *SpecialFX编译build文件夹,复制到测试中的Phaserfx.js。如果你不需要在FX,不包括js文件 *该项目现在产生打字稿声明文件,并更新所有测试中使用它们自己的引用。 在Flash *修正了一个错误,淡入淡出和动摇。3秒以上的持续时间会失败什么。 *修正了一个错误的屏幕抖动,使得它有点失控,现在正确地摇摇 *新增新的Scanlines的屏幕FX *修正偏移值在GeomSprite.renderPoint被忽略(感谢bapuna) *增加了新的反光镜屏幕FX。可以镜像摄像机图像水平,垂直或一个可选的填充颜色叠加。 *新增Camera.disableClipping当你不关心的事情正在绘制边缘外(有用的一些FX)。 *更新TilemapLayer的碰撞,使数据现在存储在_tempTileBlock期间避免常量数组创建游戏循环。 *TilemapLayer.getTileOverlaps()现在返回所有多格重叠的对象,而不仅仅是一个布尔 *Tilemap.collide现在可选的回调和上下文参数用于碰撞发生。 *添加Tilemap.collisionCallback Tilemap.collisionCallbackContext的,所以您可以设置一次,而不是重新设置他们在每次调用碰撞。 *Collision.separateTile现在有2个额外的参数:separateX和separateY。如果真正的对象将被分离重叠,否则只是重叠返回布尔结果。 *新增Tile.separateX Tile.separateY(默认为true)。设置为false,如果你不想一瓦,对象移动停止,你只希望它返回到回调的碰撞数据。 *加入Tilemap.getTileByIndex(值)来访问一个特定类型的多格,而不是通过其地图索引。 *新增TilemapLayer.putTile(X,Y,索引) -允许你插入新的多格数据映射层(创建自己的瓦片编辑器!) *TilemapLayer.getTileBlock现在返回的地图数据,而不是一个独特的阵列只是一个临时块阵列 *增加了TilemapLayer.swapTile的-扫描地图的特定区域内的所有tileA和掉他们tileB的实例,反之亦然。 *增加TilemapLayer.replaceTile -扫描指定的地图区域,取代所有tileA实例与tileB。离开tileB不受影响。 *新增TilemapLayer.fillTiles -填充特定区域内的指定 *添加TilemapLayer.randomiseTiles的多格地图-地图与随机多格从指定的列表填充给定的区域。 *添加新的乐趣“地图上画“测试-反弹那些胡萝卜! *改变SoundManager类类第一出戏(感谢声母和hackmaniac的尊重音量)
V0.9.4
*新增Tilemap.getTile,getTileFromWorldXY,getTileFromInputXY *添加Tilemap.setCollisionByIndex setCollisionByRange的 上架GameObject.renderRotation布尔控制精灵是否会视觉旋转或(有用的,当角度需要改变,但图形不) *增加额外的检查的Camera.width/height,使你不能将它们设置舞台大小 *大于新增Collision.separateTile和Tilemap.collide *修正tilemap的边界检查,如果地图是游戏尺寸小于 *修正:World._cameras的市民,World.cameras转身它(感谢Hackmaniac)到一个getter Game.camera *修正:正确地Circle.isEmpty检查直径(感谢bapuna), *更新Gruntfile出口包裹在UMD块为require.js/CommonJS的(感谢Hackmaniac phaser.js新版本)
V0.9.3
*新增的新ScrollZone游戏对象。无休止地有用,但尤其是滚动的背景。 *加入GameObject.hideFromCamera(cameraID)停止一个对象渲染特定的摄像机(也showToCamera和clearCameraList) *的新增GameObject.setBounds()游戏对象限制在某个特定区域内的窗口(用于停止创建示例测试。他们去的边缘) *添加GameObject.outOfBoundsAction的,可以是越界停止停止运动的物体,或出界,杀杀死它。 *添加GameObject.rotationOffset的。有用的,如果你的图形需要旋转,但没有面临零度(右)绘制。 *添加shiftSinTable和shiftCosTable的的GameMath类,允许通过快速迭代的数据表。 *增加了更强大的框架检查到AnimationManager *重新内置的tilemap处理从无到有,允许适当的分层地图(出口多格/MAPPY) *tilemap的不再需要的缓冲区屏幕(准备WebGL的支持) *固定的问题,与集合没有加入到游戏新创建的对象(感谢JesseFreeman) *修正了一个潜在的竞争条件在Game.boot问题(感谢Hackmaniac) *固定的问题与前一个纹理地图集显示零帧动画开始播放(感谢JesseFreeman) *修正了一个错误的地方Camera.visible =假仍然呈现 *删除的需要DynamicTextures需要一个关键的财产和更新测试用例。 *您现在可以通过一个数组或单一的价值Input.Keyboard.addKeyCapture()。
V0.9.2
*固定的问题与创建被称为如果有一个空的init方法。 *新增能力翻转精灵(Sprite.flipped =真)+测试情况。 *新增能力重新启动精灵动画。 *精灵动画不'T重新启动,如果你叫他们玩时,他们已经在运行。 *增加Stage.disablePauseScreen。设置为true,停止暂停当标签失去焦点时,你的游戏。
V0.9.1
*添加新的align属性到游戏物体渲染时控制安置。 *对齐例如添加到的精灵测试组(单击鼠标改变对齐位置) *增加了一个新的。单类。相同点,但较小/较少的功能,更新游戏物体使用它。 *完全重建Rectangle类使用的MicroPoints和9点周围的边缘,要采用 新的碰撞系统中存储的值。 *Game.Input现在有2个信号,您可以订阅向上/向下事件,精灵对齐使用的例子。 *更新了美国的例子带来符合0.9版本。
V0.9
*大的重构。现在一切都住内的Phaser模块,因此所有代码和所有的测试都被更新以反映此。一点点更详细的编码,但停止的框架通配符的全局命名空间。也应WebStorm和相似的编辑器的代码洞察工作 *新增新GeomSprite对象。这是一个精灵,使用几何级显示(圆形,矩形,点,线)。这是非常灵活! *增加了几何交集结果的对象。 *增加了新的的碰撞类和移动的一些功能有。包含了所有的游戏对象和几何相交的方法。 *现在可以创建一个精灵动画帧的名称,而不是索引。有用的,当你的动画纹理地图集里面。附加测试显示。 *新增addKeyCapture(),removeKeyCapture()和clearCaptures()Input.Keyboard的。调用event.preventDefault()来设置捕捉任何键码,让您避免页面滚动时,例如使用光标键在游戏中。 *增加了新的运 动类,它包含了很多方便的功能,如'moveTowardsObject','velocityFromAngle' *吐温经理。现在,您可以创建充斥着通过Game.createTween(或更多的控制game.tweens)。所有常见的犯罪嫌疑人是在这里:弹跳*弹性,五次,等它挂接到游戏核心时钟,因此,如果你的游戏暂停和继续充斥着相应的调整。
V0.8
*新增能力框架精灵按名称(sprite.frameName),有用的,当你加载一个纹理地图集文件名 设置的值,而不是使用帧索引。 *更新纹理图集4演示表明这一点。 *修正了一个错误,将如果你试图创建一个精灵使用无效质地键,导致运行时错误。 *加入的DynamicTexture支持和它的测试用例。
V0.7
*更名为全屏StageScaleMode,因为它是更拟合。测试横跨Android和iOS的各种规模的模式。 *新增在窗口的x/y坐标输入类,并从任何屏幕的能力得到窗口的x/y输入坐标。 *新增RandomDataGenerator种子随机数生成。 设置游戏窗口的大小,现在调整默认的摄像头(可选bool标志)
V0.6
*加入触摸支持移动设备(桌面启用它)和人口稠密x/y的坐标位置。从触摸和鼠标输入有共同的价值观。 *增加了新的圆几何级(用于触摸)和移动到一个几何文件夹中。 *新增设备类设备的检查。 *新增全屏类(滚动网址栏在iOS和Android的方式在移动设备上启用全屏支持)
V0.5
*初始版本
许可证(License) 版权所有2013年理查德·戴维,光子风暴有限公司保留所有权利。(Copyright 2013 Richard Davey, Photon Storm Ltd. All rights reserved.)
再分发和使用源代码和二进制形式,不论有否修订,允许符合下列条件:(Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:)
1。再分发源代码时必须保留上述版权声明,此条件列表和以下免责声明。(Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.)
2。以二进制形式再分发必须再现的文档和/或其他材料的分发提供上述版权声明,此条件列表和以下免责声明。( Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.)
本软件提供的理查德·戴维“AS IS”任何明示或暗示的担保,包括但不限于 针对特定目的的适销性和适用性的默示担保均不承担任何责任。在任何情况下,理查德·戴维或 贡献者均不对任何直接的,间接的,偶然的,特殊的,惩罚性的或 后果性的损害(包括但不限于替代商品或 服务的采购,使用,数据或利润损失;业务中断)但是造成和 任何责任理论,无论是在合同,严格责任或侵权行为(包括疏忽或 其他原因)因任何WAY OUT,这个软件的使用,即使已被告知发生此类损害的可能性。
THIS SOFTWARE IS PROVIDED BY RICHARD DAVEY “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RICHARD DAVEY OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
软件和文档中包含的意见和结论,那些 作者和不应该被解释为代表官方政策,无论是明示
获得支持和Phaser论坛上聊到其他开发者
Phaser是一个2D的JavaScript/打字稿HTML5的游戏框架。它的诞生从我们自己内部的图书馆,Flixel Flixel电动工具的异花授粉 。如果你熟悉Flixel,你应该能转到Phaser,并不需要太多的时间。
Phaser建设我们的主要目标是让你快速制作游戏,删除一些烦杂代码,HTML5可以改变你的方式。
我们也仔细设计以使其不执行严格的代码结构,流程或方法,你什么样的。有没有假的OOP,被迫继承或魔法物品被发现。在其最低限度的所有你需要的是一个包括一个单一的功能。您可以创建使用JavaScript或打字的游戏,完全取决于你。Phaser的打字稿版本兼容Visual Studio和WebStorm。
虽然还早在其生命周期与开发社区的支持下,我们正在快速迈向1.0版本。
要求 Phaser中创建的游戏需要一个现代的Web浏览器支持canvas标签。这包括Internet Explorer 9+, Firefox, Chrome, Safari和Opera。它也适用于移动网络包括Android 2.x的浏览器及以上和iOS5的移动Safari浏览器及以上的移动网络浏览器。
如果命令行编译通过打字稿,请使用`目标ES5`
如果你需要它包括Grunt文件将生成一个RequireJS/Phaser CommonJS的版本构建。
Phaser仅仅是45KB gzip压缩和轻量级的。
入门指南 直到我们得到周围写一个一定要检查以下指南:
开始写建立一个HTML5游戏与Phaser由杰西·弗里曼的缩写快速指南
有问题吗?询问中Phaser论坛。
官方下载网址: |
原文来自:http://html6game.com/thread-1023-1-1.shtml