• 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

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

  • 相关阅读:
    matlab基础知识
    reverse number
    C++基础知识(一)
    ES6 let const学习
    [ZZ]一名IT从业者的英语口语能力成长路径
    使用windows Live Writer 以及office word 2013发布文章到博客园总结
    CString.format的用法
    Cstring 与 string 注意点
    卡尔曼滤波应用
    linux 重新挂载分区(教程)
  • 原文地址:https://www.cnblogs.com/wuyiblogs/p/5878308.html
Copyright © 2020-2023  润新知