phaser 为什么gamemaker全局变量 game

用Phaser来制作一个html5游戏——flappy bird (一) - 无双 - 博客园
是一个简单易用且功能强大的html5游戏框架,利用它可以很轻松的开发出一个html5游戏。在这篇文章中我就教大家如何用Phaser来制作一个前段时间很火爆的游戏:Flappy Bird,希望大家看后也能做出自己的html5游戏。大家可以先来试玩一下我已经做好的这个游戏,感受一下Phaser的游戏效果,游戏的完整代码我已经放到上了。支持的浏览器:IE9+、Firefox、Chrome、Opera、Safari以及移动端的能支持html5的浏览器,推荐使用谷歌浏览器,因为它性能最好。
phaser.js的源码可以到它在里去下载,游戏要用到的图片声音等素材资源请点击。Phaser的使用非常简单,只需要引入它的主文件,然后在页面中指定一个用来放置canvas的元素,然后实例化一个 Game 对象就可以了。
&!DOCTYPE html&
&meta charset="utf-8" /&
&title&game&/title&
&script src="js/phaser.js"&&/script&
&div id="game"&&/div&
var game = new Phaser.Game(288,505,Phaser.AUTO,'game'); //实例化一个Phaser的游戏实例
我们来看看Phaser.Game这个函数都有哪些参数:
Phaser.Game(width, height, renderer, parent, state, transparent, antialias, physicsConfig)
width: 游戏的宽度,也就是用来渲染游戏的canvas的宽度,单位为px
height: 游戏的高度,也就是用来渲染游戏的canvas的高度,单位为px
renderer: 使用哪种渲染方式,Phaser.CANVAS 为使用html5画布,Phaser.WEBGL 为使用性能更加好的WebGL来渲染,Phaser.AUTO为自动侦测,如果浏览器支持WebGL则使用WebGL,否则使用Canvas
parent: 用来放置canvas元素的父元素,可以是一个元素id,也可以是dom元素本身,phaser会自动创建一个canvas并插入到这个元素中。
state: state可以理解为场景,在这里指定state表示让游戏首先加载这个场景,但也可以不在这里指定state,而在之后的代码中决定首先加载哪个state。关于state我后面还会有详细的说明。
transparent: 是否使用透明的canvas背景
antialias: 是否启用抗锯齿
physicsConfig: 游戏物理系统配置参数
以上所有参数都是可选的,它们的默认值以及更详细的信息可以,一般我们只需指定前面那4到5个参数就行了。
实例化Game对象后,接下来要做的就是创建游戏会用到的各种场景了,也就是上面说的state,那么怎么才能创建一个state呢?state可以是一个js自定义对象,也可以是一个函数,只要它们存在preload、create、update这三个方法中的任意一个,就是一个合法的state。
//state可以是一个自定义对象
var state1 = {
preload : function(){ },
create : function(){ },
update : function(){ }
//state也可以是一个构造函数
var state2 = function(){
this.preload = function(){ };
this.create = function(){ };
this.update = function(){ };
//只要存在preload、create、update三个方法中的一个就可以了
var state3 = function(){
this.update = function(){
//当然state里也可以存在其他属性或方法
var state4 = function(){
this.create = function(){ };
this.aaa = function(){ }; //其他方法
this.bbb = 'hello'; //其他属性
其中的preload方法,是用来加载资源的,它会最先执行。create方法是用来初始化以及构建场景的,它要等到在preload里加载的资源全部加载完成后才执行。最后update方法是更新函数,它会在游戏的每一帧都执行,以此来创造一个动态的游戏。
在这个游戏中,我们会用到4个state,我们可以通过game.state.add()方法来给游戏添加state,然后用game.state.start()方法来调用state,详细信息请看
var game = new Phaser.Game(288,505,Phaser.AUTO,'game');
game.States = {}; //创建一个对象来存放要用到的state
game.State.boot = function(){ ... }
//boot场景,用来做一些游戏启动前的准备
game.State.prelaod = function(){ ... } //prelaod场景,用来显示资源加载进度
game.State.menu = function(){ ... } //menu场景,游戏菜单
game.State.play = function(){ ... } //play场景,正式的游戏部分
//把定义好的场景添加到游戏中
game.state.add('boot',game.States.boot);
game.state.add('preload',game.States.preload);
game.state.add('menu',game.States.menu);
game.state.add('play',game.States.play);
//调用boot场景来启动游戏
game.state.start('boot');
制作资源加载进度条
游戏要用到的一些图片、声音等资源都需要提前加载,有时候如果资源很多,就有必要做一个资源加载进度的页面,提高用户等待的耐心。这里我们用一个state来实现它,命名为preload。
因为资源加载进度条需要一个进度条的背景图片,所以在制作这个state前,我们还需要另一个最基础的state,用来加载那张进度条图片,我们命名为boot。
game.States.boot = function(){
this.preload = function(){
game.load.image('loading','assets/preloader.gif'); //加载进度条图片资源
this.create = function(){
game.state.start('preload'); //加载完成后,调用preload场景
Phaser中资源的加载都是通过
这个对象的方法来完成的,游戏实例的load属性就是指向当前游戏的Loader对象,在我们这里就是game.load。Loader对象有许多方法,不同的方法可以加载不同的资源,例如加载图片我们用的是game.load.image()方法,具体的方法列表请自行参考。
在preload这个场景中,我们需要把游戏后面会用到的所有资源都进行加载,然后还要展示一个加载进度条给用户看。Loader对象提供了一个
方法,只要把一个sprite对象指定给这个方法,那么这个sprite对象的宽度或高度就会根据当前加载的百分比自动调整,达到一个动态的进度条的效果。
game.States.preload = function(){
this.preload = function(){
var preloadSprite = game.add.sprite(50,game.height/2,'loading'); //创建显示loading进度的sprite
game.load.setPreloadSprite(preloadSprite);
//用setPreloadSprite方法来实现动态进度条的效果
//以下为要加载的资源
game.load.image('background','assets/background.png'); //游戏背景图
game.load.image('ground','assets/ground.png'); //地面
game.load.image('title','assets/title.png'); //游戏标题
game.load.spritesheet('bird','assets/bird.png',34,24,3); //鸟
game.load.image('btn','assets/start-button.png');
game.load.spritesheet('pipe','assets/pipes.png',54,320,2); //管道
game.load.bitmapFont('flappy_font', 'assets/fonts/flappyfont/flappyfont.png', 'assets/fonts/flappyfont/flappyfont.fnt');//显示分数的字体
game.load.audio('fly_sound', 'assets/flap.wav');//飞翔的音效
game.load.audio('score_sound', 'assets/score.wav');//得分的音效
game.load.audio('hit_pipe_sound', 'assets/pipe-hit.wav'); //撞击管道的音效
game.load.audio('hit_ground_sound', 'assets/ouch.wav'); //撞击地面的音效
game.load.image('ready_text','assets/get-ready.png'); //get ready图片
game.load.image('play_tip','assets/instructions.png'); //玩法提示图片
game.load.image('game_over','assets/gameover.png'); //gameover图片
game.load.image('score_board','assets/scoreboard.png'); //得分板
this.create = function(){
game.state.start('menu'); //当以上所有资源都加载完成后就可以进入menu游戏菜单场景了
上面我们提到了,也就是游戏开发中俗称的精灵,同样在Phaser中sprite对象也是制作游戏过程中用得最多的也是最重要的一个对象之一。我们可以用一幅图片来创建一个sprite,然后用Phaser提供给我们的众多属性和方法来对它进行操作。上面我们是利用game.add.sprite()来创建sprite的,并且创建后会自动把它添加到当前的游戏中,game.add代表的是对象,该对象提供了了一系列快捷方法来方便我们创建游戏的各种组件。我们这里制作的资源加载进度页面非常简单,大概就是下面这个样子:
制作游戏菜单页面
资源加载完成后就该进入到游戏菜单页面了,说是菜单页,但我们这里只是提供一个开始游戏的按钮而已,作为教程就别搞那么复杂啦。做好后的效果如下:
下面我们就来实现这个页面。
首先是背景图与地面,我们看到这两个东西是会动的,地面移动动的速度快一些,背景图慢一些,在Phaser中有专门的东西来处理这种效果,叫做,什么是TileSprite呢?TileSprite本质上还是一个sprite对象,不过这个sprite的贴图是可以移动的,并且会自动平铺来弥补移动后的空缺,所以我们的素材图片要是平铺后看不出有缝隙,就可以拿来当做TileSprite的移动贴图了。TileSprite的贴图既可以水平移动也可以垂直移动,或者两者同时移动,我们只需要调用TileSprite对象的autoScroll(x,y)方法就可以使它的贴图动起来了,其中x是水平方向的速度,y是垂直方向的速度。
game.States.menu = function(){
this.create = function(){
var bg = game.add.tileSprite(0,0,game.width,game.height,'background'); //当作背景的tileSprite
var ground = game.add.tileSprite(0,game.height-112,game.width,112,'ground').autoScroll(-100,0); //当作地面的tileSprite
bg.autoScroll(-10,0); //让背景动起来
ground.autoScroll(-100,0); //让地面动起来
然后来制作游戏标题,游戏标题flappy bird这几个字是一张图片,然后那个鸟是一个sprite,并且我们在sprite上执行了动画,使它的翅膀看起来是在动的。我要说的是怎么在sprite对象上实现动画。首先在加载鸟的图片时,我们加载的不当当就是一张鸟的图片,我们加载的是一个这样的图片:
我们看到这张图片有三只鸟,更确切的说是一只鸟的三个状态,或者说是动画中的三个帧。那我们怎样让他变成动画呢?在对象中有一个spritesheet的方法,就是专门用来加载这种多帧图片的,我们看一下这个方法:
spritesheet(key, url, frameWidth, frameHeight, frameMax, margin, spacing)
key : 给这张图片指定的名称,以后在创建sprite等对象时会要用到的
url: 图片的地址
frameWidth :& 图片中每帧的宽度
frameHeight : 图片中每帧的高度
frameMax : 最多有几帧
margin : 每帧的外边距
spacing : 每帧之间的间隔
我们上面那张鸟的图片,每一个鸟的宽高分别是34px和24px,所以frameWidth应该是34,frameHeight是24,然后我们这个动画有三帧,frameMax为3,帧与帧之间没有间隙,margin与spacing都为0。实际上spritesheet方法就是能让我们加载一个图片,并在这个图片上划分出帧来,以后使用这个图片的sprite就可以用这些帧来播放动画啦。要在sprite上实现动画,我们首先还得先定义一个动画,就是定义这个动画是由哪些帧组成的。sprite对象有个属性,代表的是Phaser中专门管理动画的对象:,该对象有一个add方法,用来添加动画,还有一个play方法,用来播放动画,它们具体的参数可以参阅文档。
下面再说一个非常重要的对象:,也就是组。组相当于一个父容器,我们可以把许多对象放进一个组里,然后就可以使用组提供的方法对这些对象进行一个批量或是整体的操作。比如要使组里的对象同意进行一个位移,只需要对组进行位移就可以了,又比如要对组里的所有对象都进行碰撞检测,那么就只需要对这个组对象进行碰撞检测就行了。下面我们要制作的这个游戏标题是由一张文字图片和一支鸟组成的,我们就是把这两个东西放在一个组中,然后来进行整体的操作。
game.States.menu = function(){
this.create = function(){
var titleGroup = game.add.group(); //创建存放标题的组
titleGroup.create(0,0,'title'); //通过组的create方法创建标题图片并添加到组里
var bird = titleGroup.create(190, 10, 'bird'); //创建bird对象并添加到组里
bird.animations.add('fly'); //给鸟添加动画
bird.animations.play('fly',12,true); //播放动画
titleGroup.x = 35; //调整组的水平位置
titleGroup.y = 100; //调整组的垂直位置
game.add.tween(titleGroup).to({ y:120 },1000,null,true,0,Number.MAX_VALUE,true); //对这个组添加一个tween动画,让它不停的上下移动
上面代码中的Tween对象,是专门用来实现补间动画的。通过game.add的tween方法得到一个Tween对象,这个方法的参数是需要进行补间动画的物体。然后我们可以使用Tween对象的to方法来实现补间动画。
to(properties, duration, ease, autoStart, delay, repeat, yoyo)
properties :& 一个js对象,里面包含着需要进行动画的属性,如上面代码中的 {y:120}
duration : 补间动画持续的时间,单位为毫秒
ease : 缓动函数,默认为匀速动画
autoStart : 是否自动开始
delay : 动画开始前的延迟时间,单位为毫秒
repeat : 动画重复的次数,如果需要动画永远循环,则把该值设为 Number.MAX_VALUE
yoyo : 如果该值为true,则动画会自动反转
最后是添加一个开始游戏的按钮。Phaser提供了对象让我们能很简单的实现一个按钮。
game.States.menu = function(){
this.create = function(){
var btn = game.add.button(game.width/2,game.height/2,'btn',function(){//添加一个按钮
game.state.start('play'); //点击按钮时跳转到play场景
btn.anchor.setTo(0.5,0.5); //设置按钮的中心点
Phaser中很多对象都有一个anchor属性,它表示这个物体的中心点,物体的位置平移、旋转的轴,都是以这个中心点为参照的。所以上面代码中我们要使按钮水平垂直居中,除了要把按钮的x,y属性分别设为游戏的宽高的一半外,还要把按钮的中心点设为按钮的中心。
最后我们把所有代码合起来,得到了menu这个state的最终代码,该state只需要一个create方法就行了:
game.States.menu = function(){
this.create = function(){
game.add.tileSprite(0,0,game.width,game.height,'background').autoScroll(-10,0); //背景图
game.add.tileSprite(0,game.height-112,game.width,112,'ground').autoScroll(-100,0); //地板
var titleGroup = game.add.group(); //创建存放标题的组
titleGroup.create(0,0,'title'); //标题
var bird = titleGroup.create(190, 10, 'bird'); //添加bird到组里
bird.animations.add('fly'); //添加动画
bird.animations.play('fly',12,true); //播放动画
titleGroup.x = 35;
titleGroup.y = 100;
game.add.tween(titleGroup).to({ y:120 },1000,null,true,0,Number.MAX_VALUE,true); //标题的补间动画
var btn = game.add.button(game.width/2,game.height/2,'btn',function(){//按钮
game.state.start('play');
btn.anchor.setTo(0.5,0.5);
第二部分教程:Phaser类简介_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Phaser类简介
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩11页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢分享给朋友:通用代码: <input id="link4" type="text" class="form_input form_input_s" value="" />复 制flash地址: 复 制html代码: <input type="text" class="form_input form_input_s" id="link3" value="" />复 制分享视频到站外获取收益&&手机扫码分享视频二维码2小时内有效Phaser游戏引擎HTML5游戏开发教程08 - 音乐与音效资源下载至电脑扫码用手机看用或微信扫码在手机上继续观看二维码2小时内有效Phaser游戏引擎HTML5游戏开发教程08 - 音乐与音效资源扫码用手机继续看用或微信扫码在手机上继续观看二维码2小时内有效,扫码后可分享给好友没有优酷APP?立即下载请根据您的设备选择下载版本
药品服务许可证(京)-经营-
节目制作经营许可证京字670号
请使用者仔细阅读优酷、、
Copyright(C)2017 优酷
不良信息举报电话:Phaser开源2d引擎 javascript/html5游戏框架
功能特点(Features) 易维护代码(Easy Asset Loading) Phaser可以加载图片,音频文件,数据文件,文本文件和自动解析精灵图和纹理地图集数据(出口纹理封隔器或Flash CS6) 屏幕(Cameras) 查看你的游戏窗口,你可以有多个摄像头,每个摄像头可以分为一
功能特点(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上)
发行时间:日
总例子:71
*移动启动屏幕和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的尊重音量)
*新增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新版本)
*新增的新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()。
*固定的问题与创建被称为如果有一个空的init方法。
*新增能力翻转精灵(Sprite.flipped =真)+测试情况。
*新增能力重新启动精灵动画。
*精灵动画不'T重新启动,如果你叫他们玩时,他们已经在运行。
*增加Stage.disablePauseScreen。设置为true,停止暂停当标签失去焦点时,你的游戏。
*添加新的align属性到游戏物体渲染时控制安置。
*对齐例如添加到的精灵测试组(单击鼠标改变对齐位置)
*增加了一个新的。单类。相同点,但较小/较少的功能,更新游戏物体使用它。
*完全重建Rectangle类使用的MicroPoints和9点周围的边缘,要采用
新的碰撞系统中存储的值。
*Game.Input现在有2个信号,您可以订阅向上/向下事件,精灵对齐使用的例子。
*更新了美国的例子带来符合0.9版本。
*大的重构。现在一切都住内的Phaser模块,因此所有代码和所有的测试都被更新以反映此。一点点更详细的编码,但停止的框架通配符的全局命名。也应WebStorm和相似的编辑器的代码洞察工作
*新增新GeomSprite对象。这是一个精灵,使用几何级显示(圆形,矩形,点,线)。这是非常灵活!
*增加了几何交集结果的对象。
*增加了新的的碰撞类和移动的一些功能有。包含了所有的游戏对象和几何相交的方法。
*现在可以创建一个精灵动画帧的名称,而不是索引。有用的,当你的动画纹理地图集里面。附加测试显示。
*新增addKeyCapture(),removeKeyCapture()和clearCaptures()Input.Keyboard的。调用event.preventDefault()来设置捕捉任何键码,让您避免页面滚动时,例如使用光标键在游戏中。
*增加了新的运 动类,它包含了很多方便的功能,如'moveTowardsObject','velocityFromAngle'&
你最喜欢的

我要回帖

更多关于 phaser 3117 的文章

 

随机推荐