Html5+Lufylegend.js游戏开发(一)引擎介绍及原理
Yorhom|2013-09-26 10:30|次浏览|
游戏开发(4)HTML5(124)游戏引擎(33)Lufylegend.js(1)
Html5游戏开发最近受到很多开发者的关注。但是html5本身不是为游戏开发而量身定造的,所以开发起来十分麻烦。因此挑选好的引擎对游戏开发十分有帮助。
在游戏开发中,有这么几种程序语言:
C++配合OpenGL(移动端游戏开发)
C++配合DirectX(PC端游戏开发)
Java (移动端游戏开发)
ActionScript(网页游戏开发)
html5在游戏开发上,效率都不及以上的几种。但它的优势是很显然的:跨平台+语法简单。在未来,如果html5的效率能大大提升,前途是无量的。因此研究它是很有必要的。
回到正题,html5在没有任何打包的情况下,是做网页游戏的,和ActionScript是同种类型的。但是ActionScript最主要的缺点就是不是跨平台的。因此html5正好可以弥补这个缺点。对于诸位ActionScript开发者来说,如果能利用ActionScript的语法,开发html5游戏那是再方便不过的了。因此lufylegend这款引擎就出现了。
一、lufylegend介绍
lufylegend是一款开源html5游戏引擎, 它实现了利用仿ActionScript3.0的语法进行HTML5的开发,包含了LSprite,LBitmapData,LBitmap,LLoader,LURLLoader,LTextField,LEvent等多个AS开发人员熟悉的类, 支持Google Chrome,Firefox,Opera,IE9,IOS,Android等多种热门环境。利用lufylegend可以轻松的使用面向对象编程,并且可以配合Box2dWeb制作物理游戏, 另外它还内置了LTweenLite缓动类等非常实用的功能,现在开始使用它吧,它可以让你更快的进入HTML5的世界!
二、引擎地址
引擎官方主页:http://lufylegend.com/lufylegend
引擎API文档:http://lufylegend.com/lufylegend/api
三、引擎的原理
lufylegend使用起来非常方便,首先需要用到引擎中的init来初始化游戏。代码如下:
init(50,"mylegend",816,480,main);
这个函数的API文档介绍如下:
—————————————————————–
init(
speed,
divid,
width,
height,
completeFunc,
type
)
■作用:
库件初始化
■参数:
speed:游戏速度设定
divid:传入一个div的id,库件进行初始化的时候,会自动将canvas加入到此div内部
width:游戏界面宽
height:游戏界面高
completeFunc:游戏初始化后,调用此函数
type:当为null时,会先进行页面的onload操作,如果你的init函数调用是在onload之后,那么需要将此参数设为LEvent.INIT
—————————————————————–
初始化游戏后,就要开始游戏开发了。在引擎中,游戏的运行流程是这样的:
在游戏中,有一个比较重要的元素就是ENTER_FRAME时间轴事件,时间轴事件说白了就是死循环,不过是过一段时间后循环一次,在时间轴事件里我们可以通过改变一些属性(如x,y)来实现更改游戏的一些数据,从而使下次重绘时,显示出更改后的界面。
当然,你也可以不用ENTER_FRAME时间轴事件,直接改属性是一样的,但是对于一个有动态的游戏来说,时间轴事件是必不可少的。
在流程图里,我们还看到了界面重绘,引擎中是用setInterval来实现的,它通过遍历底层的对象数组,调用遍历到的对象中onshow方法来实现绘制,以此在画布canvas对象上显示出来。用数组装入这些对象最大的好处就是可以实现层次化,通过绘画先后顺序不同,就产生了层次化效果。
流程就简单地介绍到这里,以后慢慢解释。
四、开发示例
是英雄就下100层
圣诞老人送礼物
太空大战
更多官方游戏请见:http://lufylegend.com/lufylegend/demo
用户用lufylegend开发的游戏:http://lufylegend.com/html5/lufylegend_developers
如有任何疑问也可以到lufylegend论坛讨论:http://lufylegend.com/forum/forum.php
本文就到此结束了,希望对大家学习游戏开发有帮助。