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内部

 游戏界面宽

 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

 本文就到此结束了,希望对大家学习游戏开发有帮助。

原文地址:https://www.cnblogs.com/wuyiblogs/p/5878308.html