之前在石川县烟花大会的那篇文章中提到过使用js制作出烟花效果,那篇文章中是使用图片的切换来实现的。网速不够快的话效果会非常不给力。而在html5中,可以使用canvas可以进行绘图,所有的效果都不用下载,在客户端就可以实现,所以就不会受到网速的影响了。 那么,如何使用js制作动画呢?以前的话,可以使用setInterval这个函数去实现,现在又出现一个requestAnimationFrame,据说流畅性比setInterval好一些。 canvas的几个绘图的方法可以从这里查看。而requestAnimationFrame这个函数,因为不同的浏览器对象名称不一样,需要考虑一下浏览器兼容性的问题。下面的这段代码就可以保证大部分的浏览器的兼容,可以如果不兼容requestAnimationFrame的话就会选择setTimeout来实现同样的功能。 requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || window.oRequestAnimationFrame || function(callback) { setTimeout(callback, 1000 / 60); };

Read More

    前面一篇文章用jquery制作了一个拼图游戏,这篇文章介绍如何使用广度优先搜索算法来计算完成拼图的方法。     广度优先搜索是图论中最基本的一种遍历方法。以前学数据结构的时候接触过,但是没有真正理解,也从来没有用过,现在遇到这个拼图游戏路径计算问题,才真正知道了什么是广度优先搜索。     首先拿一个2行2列的作为例子,把每个小方格赋上号码,1230是我们的初始状态,目标状态是2013(0代表空白方格)。     由1230找到2013的具体算法如下:     第一步、取到根节点1230的两个子节点1032,1203。     第二步、取出子节点1032,跟目标节点对比,不相同,于是继续向下寻找到节点1032的子节点0132。     第三步、当找到子节点0132以后,有两种选择:1.查看节点1032的子节点0132。2.查看节点1032的兄弟节点1203.如果是第一种选择的话就是深度优先搜索,第二种选择的话就是广度优先搜索。两种搜索的时间复杂度都是相同的,但是我想要得到最短的路径,所以,这里采取广度优先搜索。即选择2。     第四步、取出节点1032的兄弟节点1203。跟目标节点对比,不相同,于是继续向下寻找到节点1203的子节点0213。     第五步、循环第二步。

Read More

    大多数人童年的时候应该都玩过拼图游戏。把一些零散的小方格恢复成一张完整的图案,前几天在网上看到拿js做的拼图游戏以后,运用广度优先搜索写出了计算它的最少完成步数的算法。那个小程序现在还在整理之中,过几天会总结一下发上来,在此之前,我从这个网址找到了一个比较简洁的拿jquery做的拼图游戏。稍微做了一下改动,效果还不错。游戏的难度没有调的特别高,只是为了做一下演示而已。

Read More

一个拿javascript做的推箱子小游戏,记得当时是在网上看到一个java的版本,于是就借用了里面的素材拿javascript实现了。本来计划做很多关的,但是弄着弄着没兴趣了o(╯□╰)o,结果就剩下这么一个半成品。加载的时候貌似特别慢,因为地图绘制的时候是一个一个img标签插入的,其实背景拿css sprite显示貌似会比较好一些,可是我实在懒得改了=_=

Read More
Close Bitnami banner
Bitnami