【2Dhtml5游戏框架phaser介绍3】preload,create,update
来源:互联网 发布:matlab分水岭算法 编辑:程序博客网 时间:2024/05/21 06:01
使用phaser开发游戏,基本的结构如下:
var game = new Phaser.Game(800, 600, Phaser.AUTO, '', { preload: preload, create: create, update: update });function preload() {
}
function create() {
}
function update() {
}
先声明一个Phaser.Game对象,第一个和第二个参数表示游戏大小,第三个参数表示渲染方式,有Phaser.CANVAS, Phaser.WEBGL,Phaser.AUTO三个选项,Phaser.CANVAS使用canvas来渲染,Phaser.WebGL使用WebGL使用来渲染,推荐使用Phaser.AUTO,框架会优先使用WebGL,如果浏览器不支持WebGL,则会用canvas来渲染。第四个参数指定这个游戏显示在哪个html标签里,比如页面有一个<div id='show'/>,第四个参数便可以为'show',游戏就会在这个div里显示。如果不写'',则自动追加到body里。第五个参数为一个对象,包含了phaser最基本的几个函数,这里写了3个最基本的,分别是preload,create,update。
preload里通常预加载一些游戏的资源文件,比如图片等,当一个phaser game开始运行时,会首先执行preload绑定的函数,凡是在这里定义的任何东西都会被加载,便于后面使用。
现在我们在function preload中加载一些资源,包括2个图片(图片都来源phaser官方的examples里):
function preload() {
game.load.image('ship', 'assets/sprites/thrust_ship2.png');
game.load.image('ground', 'assets/pics/platformer_backdrop.png');
}
使用game.load方法加载各种资源时,第一个参数为这个资源的引用名称,是一个唯一的id,在使用的时候就通过这个id来引用相应的资源。比如这里定义的ship,ground,使用ship时就可以引用到assets/sprites/thrust_ship2.png这个图片。
现在在function create中加入代码来让游戏运行起来:
function create() {
game.add.sprite(0, 0, 'ground');
game.add.sprite(0, 0, 'ship');
}
此时应该如下图
现在我们在update()方法中加入代码,让飞船能通过键盘的方向键动起来。每当有键盘等触发或者刷新帧时,都会调用update定义的方法。此时所有的代码如下
<!doctype html><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <title>my ship</title> <script src="_site/js/jquery-2.0.3.min.js" type="text/javascript"></script> <script src="_site/js/phaser.js" type="text/javascript"></script><script>var game = new Phaser.Game(800, 600, Phaser.AUTO, 'example', { preload: preload, create: create, update: update });var ship;var cursors;function preload() {game.load.image('ship', 'assets/sprites/thrust_ship2.png');game.load.image('ground', 'assets/pics/platformer_backdrop.png');} function create() {game.add.sprite(0, 0, 'ground');ship = game.add.sprite(0, 0, 'ship');ship.anchor.set(0);game.physics.arcade.enable(ship);cursors = game.input.keyboard.createCursorKeys();} function update() {ship.body.velocity.x = 0;ship.body.velocity.y = 0;if (cursors.left.isDown){// Move to the leftship.body.velocity.x = -150; ship.animations.play('left');}if (cursors.right.isDown){// Move to the rightship.body.velocity.x = 150; ship.animations.play('right');}if (cursors.up.isDown){// Move to the rightship.body.velocity.y = -150; ship.animations.play('up');}if (cursors.down.isDown){// Move to the rightship.body.velocity.y = 150; ship.animations.play('down');}}</script> </head> <body> <div id="example"></div> </body></html>
0 0
- 【2Dhtml5游戏框架phaser介绍3】preload,create,update
- 【2Dhtml5游戏框架phaser介绍1】
- 【2Dhtml5游戏框架phaser介绍2】使用在线云IDE开发phaser
- HTML5 - JS - 2D 游戏框架:Phaser
- 1.Phaser游戏引擎介绍
- Phaser开源2d引擎 javascript/html5游戏框架
- Phaser - HTML5开源游戏框架
- 实例学习HTML5游戏框架phaser之一
- html5游戏开发框架phaser相关教程。
- Phaser 桌面和手机游戏HTML5框架
- phaser游戏开发之基础知识2
- Phaser游戏框架 鼠标mouse事件以及触摸touch事件
- Phaser游戏框架 鼠标mouse事件以及触摸touch事件
- 基于HTML5/Javascrip的游戏开发框架Phaser
- 使用Phaser框架构建你的第一个H5游戏
- PRELOAD
- phaser制作跑酷游戏
- 基本游戏框架介绍
- 【HDU】2859 Phalanx (DP)
- GTK+交叉编译到OK6410-A开发板 (终于弄好了,花了10天时间啊,不好弄)
- 图形学 基础
- matlab学习笔记 灰度预测
- ExtJS4加载FormPanel数据的几种方式
- 【2Dhtml5游戏框架phaser介绍3】preload,create,update
- SharePoint 2013 一些小技巧
- ACM-计算几何之Raid——poj3714
- HDU 3491 Thieves 拆点 最小割
- Android Native So加壳技术
- 一道关于大数的ACM题的讨论过程——沟通与发散思维
- 传智播客的学习记录一
- 0..0
- POJ1064 Cable master