2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1.前言

  前几天随着flappy bird这样的小游戏的火爆,使我这种也曾了解过html5技术的js业余爱好者也开始关注游戏开发。研究过两个个比较成熟的html5游戏引擎,感觉用引擎还是要方便一些。所以决定从今天正式开始研究html5游戏引擎,并且将从看官网demo的学习整理成博客和大家一起分享。

  我了解过cocos-2d for html5和phaser.js这两个引擎,其中前者比较复杂,对于有过cocos-2d平台开发经验的人来说可能学习的较为容易一些,如果是纯入门汉又不想研究c++版本(因为c++版本的网上资料较多)的,感觉学习难度较大。而第二种则相对来说demo详细,虽然没有文档是一大遗憾,但是感觉相对还是比较容易,所以就作为自己的今天的学习方向了。。所不定以后哪一天要是开发出flappy bird这样的游戏,那就真的逆袭了。。。

  自己也是初学者,主要的学习方式就是去github的项目主页(https://github.com/photonstorm/phaser)下载demo进行学习,开发工具是装了aptana插件的eclipse for jee的最新版。

  好了,现在开始demo学习第一课。

2.引入插件

  把src拷贝进项目就可以了,如果发布的话就用phaser.min.js一个文件就行了,

1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>phaser demo</title>
6 <!-- <script src="libs/jquery-2.0.3.min.js" type="text/javascript"></script> -->
7 <!-- <script src="libs/purl.js" type="text/javascript"></script>
8 <script src="libs/gamecontroller.js" type="text/javascript"></script> -->
9          <!--
10             If you're wondering why we embed each script separately, and not just the single-file phaser lib11             it's because it makes debugging *significantly* easier forus. Feel free to replace all the below12             with just a call to ../dist/phaser.js instead ifyou prefer.13         -->
14         <script src="libs/phasersrc/Intro.js"></script>
15         <script src="libs/phasersrc/pixi/Pixi.js"></script>
16         <script src="libs/phasersrc/Phaser.js"></script>
17         <script src="libs/phasersrc/utils/Utils.js"></script>
18
19         <script src="libs/phasersrc/pixi/core/Matrix.js"></script>
20         <script src="libs/phasersrc/pixi/core/Point.js"></script>
21         <script src="libs/phasersrc/pixi/core/Rectangle.js"></script>
22         <script src="libs/phasersrc/pixi/core/Polygon.js"></script>
23
24         <script src="libs/phasersrc/pixi/display/DisplayObject.js"></script>
25         <script src="libs/phasersrc/pixi/display/DisplayObjectContainer.js"></script>
26         <script src="libs/phasersrc/pixi/display/Sprite.js"></script>
27         <script src="libs/phasersrc/pixi/display/Stage.js"></script>
28
29         <script src="libs/phasersrc/pixi/extras/CustomRenderable.js"></script>
30         <script src="libs/phasersrc/pixi/extras/Strip.js"></script>
31         <script src="libs/phasersrc/pixi/extras/Rope.js"></script>
32         <script src="libs/phasersrc/pixi/extras/TilingSprite.js"></script>
33
34         <script src="libs/phasersrc/pixi/filters/AbstractFilter.js"></script>
35         <script src="libs/phasersrc/pixi/filters/FilterBlock.js"></script>
36
37         <script src="libs/phasersrc/pixi/primitives/Graphics.js"></script>
38
39         <script src="libs/phasersrc/pixi/renderers/canvas/CanvasGraphics.js"></script>
40         <script src="libs/phasersrc/pixi/renderers/canvas/CanvasRenderer.js"></script>
41
42         <script src="libs/phasersrc/pixi/renderers/webgl/PixiShader.js"></script>
43         <script src="libs/phasersrc/pixi/renderers/webgl/PrimitiveShader.js"></script>
44         <script src="libs/phasersrc/pixi/renderers/webgl/StripShader.js"></script>
45         <script src="libs/phasersrc/pixi/renderers/webgl/WebGLBatch.js"></script>
46         <script src="libs/phasersrc/pixi/renderers/webgl/WebGLFilterManager.js"></script>
47         <script src="libs/phasersrc/pixi/renderers/webgl/WebGLGraphics.js"></script>
48         <script src="libs/phasersrc/pixi/renderers/webgl/WebGLRenderer.js"></script>
49         <script src="libs/phasersrc/pixi/renderers/webgl/WebGLRenderGroup.js"></script>
50         <script src="libs/phasersrc/pixi/renderers/webgl/WebGLShaders.js"></script>
51
52         <script src="libs/phasersrc/pixi/text/BitmapText.js"></script>
53         <script src="libs/phasersrc/pixi/text/Text.js"></script>
54
55         <script src="libs/phasersrc/pixi/textures/BaseTexture.js"></script>
56         <script src="libs/phasersrc/pixi/textures/Texture.js"></script>
57         <script src="libs/phasersrc/pixi/textures/RenderTexture.js"></script>
58
59         <script src="libs/phasersrc/pixi/utils/EventTarget.js"></script>
60         <script src="libs/phasersrc/pixi/utils/Polyk.js"></script>
61
62         <script src="libs/phasersrc/core/Camera.js"></script>
63         <script src="libs/phasersrc/core/State.js"></script>
64         <script src="libs/phasersrc/core/StateManager.js"></script>
65         <script src="libs/phasersrc/core/LinkedList.js"></script>
66         <script src="libs/phasersrc/core/Signal.js"></script>
67         <script src="libs/phasersrc/core/SignalBinding.js"></script>
68         <script src="libs/phasersrc/core/Plugin.js"></script>
69         <script src="libs/phasersrc/core/PluginManager.js"></script>
70         <script src="libs/phasersrc/core/Stage.js"></script>
71         <script src="libs/phasersrc/core/Filter.js"></script>
72         <script src="libs/phasersrc/core/Group.js"></script>
73         <script src="libs/phasersrc/core/World.js"></script>
74         <script src="libs/phasersrc/core/Game.js"></script>
75
76         <script src="libs/phasersrc/input/Input.js"></script>
77         <script src="libs/phasersrc/input/Key.js"></script>
78         <script src="libs/phasersrc/input/Keyboard.js"></script>
79         <script src="libs/phasersrc/input/Mouse.js"></script>
80         <script src="libs/phasersrc/input/MSPointer.js"></script>
81         <script src="libs/phasersrc/input/Pointer.js"></script>
82         <script src="libs/phasersrc/input/Touch.js"></script>
83         <script src="libs/phasersrc/input/Gamepad.js"></script>
84         <script src="libs/phasersrc/input/SinglePad.js"></script>
85         <script src="libs/phasersrc/input/GamepadButton.js"></script>
86         <script src="libs/phasersrc/input/InputHandler.js"></script>
87
88         <script src="libs/phasersrc/gameobjects/Events.js"></script>
89         <script src="libs/phasersrc/gameobjects/GameObjectFactory.js"></script>
90         <script src="libs/phasersrc/gameobjects/BitmapData.js"></script>
91         <script src="libs/phasersrc/gameobjects/Sprite.js"></script>
92         <script src="libs/phasersrc/gameobjects/TileSprite.js"></script>
93         <script src="libs/phasersrc/gameobjects/Text.js"></script>
94         <script src="libs/phasersrc/gameobjects/BitmapText.js"></script>
95         <script src="libs/phasersrc/gameobjects/Button.js"></script>
96         <script src="libs/phasersrc/gameobjects/Graphics.js"></script>
97         <script src="libs/phasersrc/gameobjects/RenderTexture.js"></script>
98
99         <script src="libs/phasersrc/system/Canvas.js"></script>
100         <script src="libs/phasersrc/system/StageScaleMode.js"></script>
101         <script src="libs/phasersrc/system/Device.js"></script>
102         <script src="libs/phasersrc/system/RequestAnimationFrame.js"></script>
103
104         <script src="libs/phasersrc/math/RandomDataGenerator.js"></script>
105         <script src="libs/phasersrc/math/Math.js"></script>
106         <script src="libs/phasersrc/math/QuadTree.js"></script>
107
108         <script src="libs/phasersrc/geom/Line.js"></script>
109         <script src="libs/phasersrc/geom/Circle.js"></script>
110         <script src="libs/phasersrc/geom/Point.js"></script>
111         <script src="libs/phasersrc/geom/Rectangle.js"></script>
112
113         <script src="libs/phasersrc/net/Net.js"></script>
114
115         <script src="libs/phasersrc/tween/TweenManager.js"></script>
116         <script src="libs/phasersrc/tween/Tween.js"></script>
117         <script src="libs/phasersrc/tween/Easing.js"></script>
118
119         <script src="libs/phasersrc/time/Time.js"></script>
120         <script src="libs/phasersrc/time/Timer.js"></script>
121         <script src="libs/phasersrc/time/TimerEvent.js"></script>
122
123         <script src="libs/phasersrc/animation/AnimationManager.js"></script>
124         <script src="libs/phasersrc/animation/Animation.js"></script>
125         <script src="libs/phasersrc/animation/Frame.js"></script>
126         <script src="libs/phasersrc/animation/FrameData.js"></script>
127         <script src="libs/phasersrc/animation/AnimationParser.js"></script>
128
129         <script src="libs/phasersrc/loader/Cache.js"></script>
130         <script src="libs/phasersrc/loader/Loader.js"></script>
131         <script src="libs/phasersrc/loader/LoaderParser.js"></script>
132
133         <script src="libs/phasersrc/sound/Sound.js"></script>
134         <script src="libs/phasersrc/sound/SoundManager.js"></script>
135
136         <script src="libs/phasersrc/utils/Debug.js"></script>
137         <script src="libs/phasersrc/utils/Color.js"></script>
138
139         <script src="libs/phasersrc/physics/arcade/SAT.js"></script>
140         <script src="libs/phasersrc/physics/arcade/ArcadePhysics.js"></script>
141         <script src="libs/phasersrc/physics/arcade/Body.js"></script>
142
143         <script src="libs/phasersrc/particles/Particles.js"></script>
144         <script src="libs/phasersrc/particles/arcade/ArcadeParticles.js"></script>
145         <script src="libs/phasersrc/particles/arcade/Emitter.js"></script>
146
147         <script src="libs/phasersrc/tilemap/Tile.js"></script>
148         <script src="libs/phasersrc/tilemap/Tilemap.js"></script>
149         <script src="libs/phasersrc/tilemap/TilemapLayer.js"></script>
150         <script src="libs/phasersrc/tilemap/TilemapParser.js"></script>
151         <script src="libs/phasersrc/tilemap/Tileset.js"></script>
152
153         <script src="libs/phasersrc/PixiPatch.js"></script>
154         <!-- 引入那么多文件是方便调试和查看源码,发布时只需要引入phaser.min.js就行了 -->
155 <!-- <script type="text/javascript" src="libs/phaser/phaser.min.js"></script> -->
156 <script type="text/javascript" src="js/main.js"></script>
157 </head>
158 <body>
159 <div id="phaser-example"></div>
160 </body>
161 </html>

01-03

3.加载一个图片,移动动画,响应点击事件

/****/var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create });functionpreload() {//You can fill the preloader with as many assets as your game requires//Here we are loading an image. The first parameter is the unique//string by which we'll identify the image later in our code.//The second parameter is the URL of the image (relative)game.load.image('einstein', 'assets/pics/ra_einstein.png');}functioncreate() {//This creates a simple sprite that is using our loaded image and//displays it on-screenvar image=game.add.sprite(0, 0, 'einstein');image.body.velocity.x=50;image.inputEnabled=true;image.events.onInputDown.add(listener,this);
}functionlistener(){alert('clicked');
}01-03.js

01-03.js

4.尝试

  设置断点查看生命周期。在生命周期方法中加上debugger;语句强制断点。

1 /**2 *3  */
4
5 var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create,update:update,render:render });6
7 functionpreload() {8
9     //You can fill the preloader with as many assets as your game requires
10
11     //Here we are loading an image. The first parameter is the unique
12     //string by which we'll identify the image later in our code.
13
14     //The second parameter is the URL of the image (relative)
15     game.load.image('einstein', 'assets/pics/ra_einstein.png');16
17     debugger;18 }19
20 functioncreate() {21
22     //This creates a simple sprite that is using our loaded image and
23     //displays it on-screen
24     var image=game.add.sprite(0, 0, 'einstein');25 //image.body.velocity.x=50;
26     image.inputEnabled=true;27
28     image.events.onInputDown.add(listener,this);29
30     debugger;31 }32
33 functionlistener(){34     alert('clicked');35 }36 functionupdate(){37     debugger;38 }39 functionrender () {40     //debug helper
41     game.debug.renderInputInfo(32,32);42     debugger;43 }

01-03.js加断点

  经过实验可以看出调用方法:preload(加载资源),create(创建对象和其他初始化工作),update和render方法在每次渲染时都会调用

通过这个简单的例子可以让我们对phaser.js框架有个大概的了解,

转载于:https://my.oschina.net/ZaneYoung/blog/330677

html5游戏引擎-Pharse.js学习笔记(一)相关推荐

  1. html 流程控制,HTML5独家分享:原生JS学习笔记2——程序流程控制

    当当当当 .....楼主又来了!新一期的js学习笔记2--程序流程控制更新了! 想一键获取全部js学习笔记的可以给楼主留言哦! js中的程序控制语句 常见的程序有三种执行结构: 1.顺序结构 2.分支 ...

  2. node.js 学习笔记(二)模板引擎和C/S渲染

    node.js 学习笔记(二)模板引擎和C/S渲染 文章目录 node.js 学习笔记(二)模板引擎和C/S渲染 一.初步实现Apache功能 1.1 使用模板引擎 1.2 在 node 中使用模板引 ...

  3. HTML5游戏引擎(二)02-egret引擎之hello world——快速上手-清理项目 程序入口 绘制单色背景 调整屏幕的适配模式 添加文字 响应用户操作-让文字变色

    HTML5游戏引擎(二)02-egret引擎之hello world--快速上手-清理项目 & 程序入口 & 绘制单色背景 & 调整屏幕的适配模式 & 添加文字 &am ...

  4. 5款常用的html5游戏引擎以及优缺点分析

    如果您是游戏开发人员,并且正在寻找JavaScript和html5无缝协作的游戏引擎. 虽然市场上有很多免费和付费的游戏引擎,但一款让专业游戏开发者满意的游戏引擎,必须包含独特的东西,所以游戏开发者对 ...

  5. HTML5游戏引擎lufylegend深入浅出 - 引擎介绍原理

    又很久没有更新博客了,在这段时间里发生的事还蛮多的,回想起来才发现时间过得好快啊.至于博客嘛,天天都会关注,一来想看看大家是否写了一些评论,二来想看看大神们(如lufy,浅墨,雾央,Himi等)有没有 ...

  6. HTML5游戏引擎深度测评

    https://zhuanlan.zhihu.com/p/20768495 最近看到网上一篇文章,标题叫做<2016年 最火的 15 款 HTML5 游戏引擎>.目前针对HTML5游戏的解 ...

  7. UC将发布高性能HTML5游戏引擎X-Canvas

    近日,UC优视公司在北京举行了UC九游游戏平台战略发布会.在发布会上,UC九游宣布,即将发布HTML5游戏引擎X-Canvas,此引擎将致 力于提升手机HTML5游戏的用户体验,解决开发者在此前HTM ...

  8. 基于jquery的插件turn.js学习笔记

    基于jquery的插件turn.js学习笔记 简介 turn.js是一个可以实现3d书籍展示效果的jq插件,使用html5和css3来执行效果.可以很好的适应于ios和安卓等触摸设备. How it ...

  9. 千锋Node.js学习笔记

    千锋Node.js学习笔记 文章目录 千锋Node.js学习笔记 写在前面 1. 认识Node.js 2. NVM 3. NPM 4. NRM 5. NPX 6. 模块/包与CommonJS 7. 常 ...

最新文章

  1. ROS 2 index翻译(七)——用Colcon编译功能包(package)
  2. 如何增加儿童产品中的趣味性?
  3. 11.浅析Java中的final关键字
  4. 王峰:Hadoop生态技术在阿里全网商品搜索实战
  5. dhrystone测试结果_Linux性能测试工具-UnixBench--安装以及结果分析-阿里云开发者社区...
  6. C3P0连接池详细配置
  7. 滴滴上线自动驾驶服务;微软宣布将永久关闭实体店;.NET 5.0 Preview 6 发布 | 极客头条...
  8. C++ 关于 main 函数的几点说明
  9. 深圳华为 C++面试题
  10. mongoTemplate.aggregate() 聚合查询,关联查询
  11. python html5 便利店收银系统_便利店收银系统使用教程
  12. 怎样让网站显示在 Google 搜索结果中?
  13. 【动画消消乐】HTML+CSS 自定义加载动画 053
  14. java经纬度度分秒转换为小数点格式
  15. 妙趣横生的英语单词 看见英语单词头不大(zt)
  16. 微信消息自动回复并汇总
  17. openpyxl 数字格式处理
  18. 《周一清晨的领导课》笔记-NO.1
  19. STM32F7 内部flash操作启动
  20. 《德鲁克管理思想精要》读书笔记2 - 企业的宗旨、目标

热门文章

  1. 兼容Tomcat和Weblogic的Spring 数据源JNDI配置
  2. 同步锁ReentrantLock
  3. Common BeanUtils组件的使用(源码)
  4. Django框架(十八)—— auth框架:用户登录、注册、认证
  5. Knockout 官网学习文档目录
  6. 20.毛玻璃效果blur
  7. [转] 理解SVG transform坐标变换
  8. WordPress快速打造个人博客
  9. 学习笔记1(第五周)
  10. 第一次接触正则表达式/^[A-Za-z_][A-Za-z0-9_]{5,15}$/