canvas教程

在游戏中发挥HTML5 Canvas的潜能(2)

字号+ 作者:H5之家 来源:H5之家 2015-11-17 09:32 我要评论( )

JavaScript 提供了 Math.round, Math.floor 甚至 parseInt 来转换数值。但是这个方法做了一些额外的工作(比如检测数据是不是有效的数值, parseInt 甚至先将参数转换成了字符串!)。在我的rendering loop里面,我

JavaScript 提供了 Math.round, Math.floor 甚至 parseInt 来转换数值。但是这个方法做了一些额外的工作(比如检测数据是不是有效的数值, parseInt 甚至先将参数转换成了字符串!)。在我的rendering loop里面,我需要一个更快的转换方法。

在我的旧的汇编代码里面,我使用了一个小技巧:将数据右移0位。这会将浮点数从浮点寄存器移到整数寄存器,并且是通过硬件转换的。右移0位不会改变数据的值,但是会以整数形式返回。

原始代码如下:

u = parseInt((u < 0) ? texture.width + (u % texture.width) : (u >= texture.width) ? u % texture.width : u);

以下是改进后的代码:

u = ((u < 0) ? texture.width + (u % texture.width) : (u >= texture.width) ? u % texture.width : u) >> 0;

当然该方法要求你的数据是合法的数值。

最终结果

实现了上述优化之后得到的结果如下:

你可以看到做了这些基本的功能优化之后的表现。

原始的隧道渲染(没做任何优化):

做完上述优化之后:

下表展示了每项优化对帧速率的影响(在我的机器上):

更进一步

记住这些关键技巧,你就可以为现代浏览器或Windows8制作实时、快速、流畅的游戏了。

原文链接: Unleash The Power of HTML5′s Canvas For Gaming

您可能也喜欢:


利用HTML5 Canvas创建交互式Bubble Chart
关于HTML5你不得不知道的五件事情
关于HTML5的11个让人难以接受的事实
HTML5视频发展状况

无觅

相关 [游戏 html5 canvas] 推荐:

25 超棒的 HTML5 Canvas 游戏 - 迎客松 - LinuxEden开源社区-Linux伊甸园

Canvas 元素作为HTML5标准的一部分,允许你通过脚本动态渲染点阵图像. 这是为了基于浏览器的矢量图形而设计. HTML Canvas 把一个绘图 API 展现给 JS 客户端,使得脚本能够把想绘制的东西都绘制到一块画布上. 阅读全文 | 邮件推荐 | 评论回复.

html5 canvas入门 - - Marshal's Blog

可以把canvas看做div,不过,它的长和宽不能通过css来定义,要使用标签属性:. 或者javascript对象属性设置:. 使用canvas,只有一种操作方式,使用javascript. 获得canvas对象的上下文对象,该对象是操作canvas的主要对象:. 使用canvas画最简单的线, 点击运行示例,结果看起来是这样:. context.moveTo(100, 100);//移动到起点. context.lineTo(1024-100, 768-100);//从起点划线到端点. context.lineWidth = 10;//线的宽度.

在游戏中发挥HTML5 Canvas的潜能 - - Web App Trend

目前, 支持HTML 5的浏览器和Windows 8 Metro成为了游戏开发的候选方案. 利用canvas(画布)可以实现 硬件加速,你可以在上面绘制游戏的内容,通过一些技巧可以达到 每分钟 60 帧的渲染速度. 在游戏中,fluidity(流畅性)这一概念非常重要,因为好的流畅性能带给玩家更好的体验. 这篇文章的主旨在于教你一些技巧,让你可以最大程度地发挥HTML5 canvas的潜能. 我将通过一个例子来表达我要讲的内容. 这个例子是2D tunnel effect(2D隧道效应),它是我为Coding4Fun 会议写的(我参加了在法国举办的TechDays 2012). 早在80年代,当我还是一个年轻的demomaker的时候曾受到一些Commodore AMIGA代码的启发,从而写了这个2D tunnel effect.

备份:html5 canvas cheat sheet - - 膘叔

纯备份资料,HTML5的canvas资料.

html5 canvas 图像处理 - - HTML5研究小组

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • HTML5 Canvas学习笔记(1)处理鼠标事件

    HTML5 Canvas学习笔记(1)处理鼠标事件

    2015-11-13 19:45

网友点评