试用html5 canvas编写游戏引擎

本文介绍了如何利用HTML5的canvas元素创建2D游戏引擎。内容涵盖canvas的基本用法、精灵系统的设计、地图系统的概念以及帧管理和游戏管理结构的重要性。还提到了源码的下载链接,但警告可能会在某些浏览器中遇到兼容性问题。
摘要由CSDN通过智能技术生成

最近工作时间比较松散,把前段时间玩js时 写的一些小东西分享给大家,希望能给这方面有需求的朋友抛砖引玉了。

一. canvas简介

 canvas这个东西是html5里面的一个新增标记,这个标记提供了用描述语言直接进行页面绘画的能力,只要把它加入页面里面,就可以直 接使 用,代码例如:

   <body>

   ....

  <canvas  id="DrawCanv" width = "300" height="400">  this explore can't support canvas </canvas>

   </body>

 这个标记里面制定了canvas有效区的大小,如果阅历器不支持canvas标记,中间的文本部分将显示出来。

该标记与其它网页标记近似,有很多属性可以使用,要注意的是与css 层叠样式的相互作用上,该标记的高宽在网页被载入时已经确定,如果在样式里面调整,其实并不会跟着改变,而是以放缩的形式来适应新的变化。如果 你初始高宽是 30,40,用css调整为300,400,那么画出的东西相当于把30,40的位图放大到300,400上,里面的每个绘画象素的高宽都会增加10倍。

  该标签的调用也很简单 ,代码例如:

 <script  type="text/javascript">

var   canv = document.getElementById("DrawCanv");

var  canvContext = canv.getContext("2d"

随着html5 相关技术的兴起,因其跨平台的特性,和标准的日益完善。html5相关技术越来越多的被应用到前沿app的开发中,尤其是html5游戏的开发。 Laro 是一个基于html5 canvas的用于平面2d或者2.5d游戏制作的轻量级游戏引擎。 因为当前canvas作为画布形态的dom元素,并提供了大量关于矢量图以及texture绘制的api,但是由于其本身提供的api太过于底层,在类似游戏这一类交互性,逻辑性较为复杂的app时。需要开发者编写大量底层的api来实现本身的业务逻辑。 Laro出现的目的是为了简化使用canvas制作游戏时的api调用。同时提供了一套“有限状态机”的开发模式,这种模式在对于游戏这一类的典型的“事件驱动”的模型的开发上。能够很好的做到模块间的低耦合,利于开发者梳理整个开发逻辑。 Laro 游戏引擎目前已经完成了游戏开发中所需要的模块和api的封装,并有一些实际的Demo和TestCase供使用者参考。而且随后会结合这个引擎整理出一套用于html5游戏开发的可视化编辑工具。 旨在帮助开发者更快更容易的搭建一款小游戏为目的。 目前已经开源到github (https://github.com/AlloyTeam/Laro) 我们团队希望通过Laro的不断完善,能够帮助更多的html5游戏开发者以更快的速度,更优的质量完成 html5游戏 产业化的开发。 Version Log 0.1 - 基础模块搭建 0.2 - 融入jcanvas,配合鼠标事件处理 0.3 - 加强状态机模块 查看以下demo最好使用chrome  : ) http://hongru.github.com/proj/laro/examples/emberwind/ http://hongru.github.com/proj/laro/examples/typeshot/index.html http://hongru.github.com/proj/laro/examples/jxhome/ http://heroes.github.com/world-of-heroes/development/
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值