html5游戏引擎-Pharse.js学习笔记(一)
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一个文件就行了,
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>phaser demo</title>
<!-- <script src="libs/jquery-2.0.3.min.js" type="text/javascript"></script> -->
<!-- <script src="libs/purl.js" type="text/javascript"></script>
<script src="libs/gamecontroller.js" type="text/javascript"></script> -->
<!--
If you're wondering why we embed each script separately, and not just the single-file phaser lib
it's because it makes debugging *significantly* easier for us. Feel free to replace all the below
with just a call to ../dist/phaser.js instead if you prefer.
-->
<script src="libs/phasersrc/Intro.js"></script>
<script src="libs/phasersrc/pixi/Pixi.js"></script>
<script src="libs/phasersrc/Phaser.js"></script>
<script src="libs/phasersrc/utils/Utils.js"></script> <script src="libs/phasersrc/pixi/core/Matrix.js"></script>
<script src="libs/phasersrc/pixi/core/Point.js"></script>
<script src="libs/phasersrc/pixi/core/Rectangle.js"></script>
<script src="libs/phasersrc/pixi/core/Polygon.js"></script> <script src="libs/phasersrc/pixi/display/DisplayObject.js"></script>
<script src="libs/phasersrc/pixi/display/DisplayObjectContainer.js"></script>
<script src="libs/phasersrc/pixi/display/Sprite.js"></script>
<script src="libs/phasersrc/pixi/display/Stage.js"></script> <script src="libs/phasersrc/pixi/extras/CustomRenderable.js"></script>
<script src="libs/phasersrc/pixi/extras/Strip.js"></script>
<script src="libs/phasersrc/pixi/extras/Rope.js"></script>
<script src="libs/phasersrc/pixi/extras/TilingSprite.js"></script> <script src="libs/phasersrc/pixi/filters/AbstractFilter.js"></script>
<script src="libs/phasersrc/pixi/filters/FilterBlock.js"></script> <script src="libs/phasersrc/pixi/primitives/Graphics.js"></script> <script src="libs/phasersrc/pixi/renderers/canvas/CanvasGraphics.js"></script>
<script src="libs/phasersrc/pixi/renderers/canvas/CanvasRenderer.js"></script> <script src="libs/phasersrc/pixi/renderers/webgl/PixiShader.js"></script>
<script src="libs/phasersrc/pixi/renderers/webgl/PrimitiveShader.js"></script>
<script src="libs/phasersrc/pixi/renderers/webgl/StripShader.js"></script>
<script src="libs/phasersrc/pixi/renderers/webgl/WebGLBatch.js"></script>
<script src="libs/phasersrc/pixi/renderers/webgl/WebGLFilterManager.js"></script>
<script src="libs/phasersrc/pixi/renderers/webgl/WebGLGraphics.js"></script>
<script src="libs/phasersrc/pixi/renderers/webgl/WebGLRenderer.js"></script>
<script src="libs/phasersrc/pixi/renderers/webgl/WebGLRenderGroup.js"></script>
<script src="libs/phasersrc/pixi/renderers/webgl/WebGLShaders.js"></script> <script src="libs/phasersrc/pixi/text/BitmapText.js"></script>
<script src="libs/phasersrc/pixi/text/Text.js"></script> <script src="libs/phasersrc/pixi/textures/BaseTexture.js"></script>
<script src="libs/phasersrc/pixi/textures/Texture.js"></script>
<script src="libs/phasersrc/pixi/textures/RenderTexture.js"></script> <script src="libs/phasersrc/pixi/utils/EventTarget.js"></script>
<script src="libs/phasersrc/pixi/utils/Polyk.js"></script> <script src="libs/phasersrc/core/Camera.js"></script>
<script src="libs/phasersrc/core/State.js"></script>
<script src="libs/phasersrc/core/StateManager.js"></script>
<script src="libs/phasersrc/core/LinkedList.js"></script>
<script src="libs/phasersrc/core/Signal.js"></script>
<script src="libs/phasersrc/core/SignalBinding.js"></script>
<script src="libs/phasersrc/core/Plugin.js"></script>
<script src="libs/phasersrc/core/PluginManager.js"></script>
<script src="libs/phasersrc/core/Stage.js"></script>
<script src="libs/phasersrc/core/Filter.js"></script>
<script src="libs/phasersrc/core/Group.js"></script>
<script src="libs/phasersrc/core/World.js"></script>
<script src="libs/phasersrc/core/Game.js"></script> <script src="libs/phasersrc/input/Input.js"></script>
<script src="libs/phasersrc/input/Key.js"></script>
<script src="libs/phasersrc/input/Keyboard.js"></script>
<script src="libs/phasersrc/input/Mouse.js"></script>
<script src="libs/phasersrc/input/MSPointer.js"></script>
<script src="libs/phasersrc/input/Pointer.js"></script>
<script src="libs/phasersrc/input/Touch.js"></script>
<script src="libs/phasersrc/input/Gamepad.js"></script>
<script src="libs/phasersrc/input/SinglePad.js"></script>
<script src="libs/phasersrc/input/GamepadButton.js"></script>
<script src="libs/phasersrc/input/InputHandler.js"></script> <script src="libs/phasersrc/gameobjects/Events.js"></script>
<script src="libs/phasersrc/gameobjects/GameObjectFactory.js"></script>
<script src="libs/phasersrc/gameobjects/BitmapData.js"></script>
<script src="libs/phasersrc/gameobjects/Sprite.js"></script>
<script src="libs/phasersrc/gameobjects/TileSprite.js"></script>
<script src="libs/phasersrc/gameobjects/Text.js"></script>
<script src="libs/phasersrc/gameobjects/BitmapText.js"></script>
<script src="libs/phasersrc/gameobjects/Button.js"></script>
<script src="libs/phasersrc/gameobjects/Graphics.js"></script>
<script src="libs/phasersrc/gameobjects/RenderTexture.js"></script> <script src="libs/phasersrc/system/Canvas.js"></script>
<script src="libs/phasersrc/system/StageScaleMode.js"></script>
<script src="libs/phasersrc/system/Device.js"></script>
<script src="libs/phasersrc/system/RequestAnimationFrame.js"></script> <script src="libs/phasersrc/math/RandomDataGenerator.js"></script>
<script src="libs/phasersrc/math/Math.js"></script>
<script src="libs/phasersrc/math/QuadTree.js"></script> <script src="libs/phasersrc/geom/Line.js"></script>
<script src="libs/phasersrc/geom/Circle.js"></script>
<script src="libs/phasersrc/geom/Point.js"></script>
<script src="libs/phasersrc/geom/Rectangle.js"></script> <script src="libs/phasersrc/net/Net.js"></script> <script src="libs/phasersrc/tween/TweenManager.js"></script>
<script src="libs/phasersrc/tween/Tween.js"></script>
<script src="libs/phasersrc/tween/Easing.js"></script> <script src="libs/phasersrc/time/Time.js"></script>
<script src="libs/phasersrc/time/Timer.js"></script>
<script src="libs/phasersrc/time/TimerEvent.js"></script> <script src="libs/phasersrc/animation/AnimationManager.js"></script>
<script src="libs/phasersrc/animation/Animation.js"></script>
<script src="libs/phasersrc/animation/Frame.js"></script>
<script src="libs/phasersrc/animation/FrameData.js"></script>
<script src="libs/phasersrc/animation/AnimationParser.js"></script> <script src="libs/phasersrc/loader/Cache.js"></script>
<script src="libs/phasersrc/loader/Loader.js"></script>
<script src="libs/phasersrc/loader/LoaderParser.js"></script> <script src="libs/phasersrc/sound/Sound.js"></script>
<script src="libs/phasersrc/sound/SoundManager.js"></script> <script src="libs/phasersrc/utils/Debug.js"></script>
<script src="libs/phasersrc/utils/Color.js"></script> <script src="libs/phasersrc/physics/arcade/SAT.js"></script>
<script src="libs/phasersrc/physics/arcade/ArcadePhysics.js"></script>
<script src="libs/phasersrc/physics/arcade/Body.js"></script> <script src="libs/phasersrc/particles/Particles.js"></script>
<script src="libs/phasersrc/particles/arcade/ArcadeParticles.js"></script>
<script src="libs/phasersrc/particles/arcade/Emitter.js"></script> <script src="libs/phasersrc/tilemap/Tile.js"></script>
<script src="libs/phasersrc/tilemap/Tilemap.js"></script>
<script src="libs/phasersrc/tilemap/TilemapLayer.js"></script>
<script src="libs/phasersrc/tilemap/TilemapParser.js"></script>
<script src="libs/phasersrc/tilemap/Tileset.js"></script> <script src="libs/phasersrc/PixiPatch.js"></script>
<!-- 引入那么多文件是方便调试和查看源码,发布时只需要引入phaser.min.js就行了 -->
<!-- <script type="text/javascript" src="libs/phaser/phaser.min.js"></script> -->
<script type="text/javascript" src="js/main.js"></script>
</head>
<body>
<div id="phaser-example"></div>
</body>
</html>
01-03
3.加载一个图片,移动动画,响应点击事件
/**
*
*/ var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create }); function preload() { // 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'); } function create() { // This creates a simple sprite that is using our loaded image and
// displays it on-screen
var image=game.add.sprite(0, 0, 'einstein');
image.body.velocity.x=50;
image.inputEnabled=true; image.events.onInputDown.add(listener,this);
} function listener(){
alert('clicked');
} 01-03.js
01-03.js
4.尝试
设置断点查看生命周期。在生命周期方法中加上debugger;语句强制断点。
/**
*
*/ var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create,update:update,render:render }); function preload() { // 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'); debugger;
} function create() { // This creates a simple sprite that is using our loaded image and
// displays it on-screen
var image=game.add.sprite(0, 0, 'einstein');
// image.body.velocity.x=50;
image.inputEnabled=true; image.events.onInputDown.add(listener,this); debugger;
} function listener(){
alert('clicked');
}
function update(){
debugger;
}
function render () {
//debug helper
game.debug.renderInputInfo(32,32);
debugger;
}
01-03.js加断点
经过实验可以看出调用方法:preload(加载资源),create(创建对象和其他初始化工作),update和render方法在每次渲染时都会调用
通过这个简单的例子可以让我们对phaser.js框架有个大概的了解,
html5游戏引擎-Pharse.js学习笔记(一)的更多相关文章
- 开源HTML5游戏引擎Kiwi.js 1.0正式发布
Kiwi.js是由GameLab开发的一款全新的开源HTML5 JavaScript游戏引擎.在经过一年多的开发和测试之后,终于在日前正式发布了Kiwi.js 1.0版本. 其创始人Dan Milwa ...
- WebGL three.js学习笔记 创建three.js代码的基本框架
WebGL学习----Three.js学习笔记(1) webgl介绍 WebGL是一种3D绘图协议,它把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的 ...
- HTML5游戏引擎深度测评
https://zhuanlan.zhihu.com/p/20768495 最近看到网上一篇文章,标题叫做<2016年 最火的 15 款 HTML5 游戏引擎>.目前针对HTML5游戏的解 ...
- 2016年 最火的 15 款 HTML5 游戏引擎
HTML5游戏从2014年Egret引擎开发的神经猫引爆朋友圈之后,就开始一发不可收拾,今年<传奇世界>更是突破流水2000万!从两年多的发展来看,游戏开发变得越来越复杂,需要制作各种炫丽 ...
- 国内开源html5游戏引擎全收录
本文引自<国内开源html5游戏引擎全收录> 游戏开发这潭水太深,英文水平太差,不敢看国外的, 而且这几年国内技术水平也挺高了不少,特别是JS方面.(我个人感觉) 最近看了几个国产的js游 ...
- JS学习笔记5_DOM
1.DOM节点的常用属性(所有节点都支持) nodeType:元素1,属性2,文本3 nodeName:元素标签名的大写形式 nodeValue:元素节点为null,文本节点为文本内容,属性节点为属性 ...
- HTML5游戏引擎排行榜
个好的游戏引擎,能够大大简化游戏的开发实现,html5gameengine.com网站对国内外所有HTML5游戏引擎进行了排名,排名不仅给出了价格.流行度.分数以及最新发布时间,通过点击引擎名称可以了 ...
- 基于jquery的插件turn.js学习笔记
基于jquery的插件turn.js学习笔记 简介 turn.js是一个可以实现3d书籍展示效果的jq插件,使用html5和css3来执行效果.可以很好的适应于ios和安卓等触摸设备. How it ...
- 系列文章--Node.js学习笔记系列
Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- 简介及安装Node.js开发环境 Nodejs学习笔记(二)--- 事件模块 Nodejs学习笔记(三)--- 模块 Nodejs学 ...
随机推荐
- Android 混淆与混淆过滤
Android 中代码混淆一般用的是ProGuard.它除了混淆代码之后还有其它许多实用的功能.这里主要记录混淆相关的实现. 1.ProGuard的作用 删除无用代码,压缩和优化Class文件,缩小A ...
- C# 输出24小时格式时间
比如 MessageBox.Show(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")); 会输出 2014-4-3 5:08:4[1 ...
- DWZ (JUI) 教程 国际化问题(多语言/语言切换)
DWZ 国际化也是比较简单的,网站的内容国际化和常规的项目国际化是一样的,不要做出特殊的调整. DWZ 自身框架的国际化,比如 翻页的上一页下一页等信息.这些信息都是在dwz.frag.xml 文件当 ...
- Android之天气APP
做一个天气信息APP,通过读取公开发布的气象数据,提供实时天气更新,帮助用户时刻了解天气情况.通过APP可以查询到自己所处位置的天气预报,也可以通过定位系统,获取省内任意位置的气象环境信息. API接 ...
- 如何安装 JAVA 7 (JDK 7u75) 在 CentOS/RHEL 7/6/5 Fedora
先下载JDK For 64 Bit:- # cd /opt/ # wget --no-cookies --no-check-certificate --header "Cookie: gpw ...
- postfix部署多个Content Filter的方法
Postfix邮件服务器可以在接收邮件时使用content_filter来扫描邮件(病毒,广告等).通过整合一个集中化的电子邮件内容过滤器,比如amavis或mailscanner,Postfix可以 ...
- 对App数据库元素进行简单的设计
假如对<豆瓣>进行简单的数据库元素设计; 分析页面: 简单的豆瓣一共有以下页面{ 活动页面 活动详情页面 电影页面 电影详情页面 影院页面(一般不用到数据库,不及于数据库考虑) 我的{ 活 ...
- c# js调用AjaxPro方法出错解析
公司的项目的框架中有一部分用到了AjaxPro这个方法,看到这个方法的我一脸懵逼,老老实实去百度了一下. AjaxPro是.NET平台下的一个回调式AJAX框架,使用简单,功能强大.顾名思义ajax, ...
- c#扩展方法-摘自msdn
扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用. 对于用 C# 和 Vis ...
- EasyUI form ajax submit到MVC后,在IE下提示下载内容的解决办法
问题描述: 项目环境为,.Net Mvc5+EF6……前端框架使用的是EasyUI v1.4.4. 在视图页面中,使用form的submit方法提交表单数据时,如果是使用IE的话,请求成功后IE会提示 ...