0%

phaser-games

Phaser是一个简单易用且功能强大的html5游戏框架,利用它可以很轻松的开发出一个html5游戏

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(场景)。

场景指的是游戏里不同的界面或者内容,比如一个关卡对应一个场景,每个关卡的显示内容不一样,所以每个场景加载、显示的内容也就不一样。Phaser开发的游戏就是由众多的场景组成的。
创建场景

1
2
3
4
5
6
function state(){
this.preload = function(){} //加载资源,如图片,精灵图,音频等等。
this.create = function(){} //显示内容,将加载的资源显示到游戏上
this.update = function(){} //游戏每一帧都会执行该函数里面的代码,故可以用来监控行为
this.render = function(){} //渲染内容。如游戏时长等等。
}

添加场景

1
2
3
4
game.state.add(name,state); //game为一开始创建的游戏对象

//name : 场景的名称(自己命名)
//state:场景函数的函数名,如上面创建场景时用的state

启动场景

1
2
3
game.state.start(name);

//name:在添加场景时对场景命名的名称