之前在石川县烟花大会的那篇文章中提到过使用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

    お盆的时候去了一趟石川县,在海阔童鞋的带领下,玩的很high,到石川的当天晚上正好赶上烟火大会,跟海阔童鞋还有一帮MM去看了下,真的是人山人海,热闹的不得了。照片是拿借来的单反拍的,虽然拍照的人水平不怎么样,但不得不说相机真不错。等哥有钱了,左手一部单反,右手一部单反,脖子上再挂一部单反,哈哈!

Read More

    从东京新宿附近出发的日归公路车线路其实挺多的。之前去了一趟江之岛,第一次一天内骑116km,回来累的肩膀疼。上周末本来跟前辈约好了去箱根的,无奈当天下雨,只好放弃掉。     23号的这个路线是到奥多摩湖,其实也挺不容易的,往返140km左右,但是跟我的目标一天200km差的还很远呐。 中野板上–>奥多摩湖(路线图)     到奥多摩湖的路非常好认,顺着青梅街道一路骑下去就到了。距离:67.7km,高度差:475m.

Read More

    查看wordpress的数据库的时候突然发现wp_posts表里有很多重复的内容,这个表中存放着用户发布的日志、页面等内容。这些都可以在后台重新编辑。表中存放了所有编辑过的版本的信息。因此,你也许你只发表了一篇日志,但是你修改了10次,那么数据库中存有你10次修改过后的数据。这些版本数据对我来说是冗余数据,我觉得没有必要存放他们,而且因为我刚开始并不打算租一个高配置的空间,所以想把自己的博客弄到最精简。     查看表中内容你会发现,第一次发布的版本的post_parent为0,而所有修改后的版本的post_parent为第一次发布的记录的ID,因此,我只要保留post_parent <> 0 的ID最大的记录,也就是最后修改的那条记录就可以了。对于第一次发布的版本数据来说,目前为止还没有找到比较好的处理方法,因为第一次发布的版本数据涉及到permanent link,还有留言的回复也参照它的id,我还没有做过尝试,感觉还是保留它比较好。 下面是删除这些中间版本的sql DELETE FROM `wp_posts` WHERE ID NOT IN ( SELECT id FROM ( SELECT MAX( ID ) AS `id`

Read More

    在搬家的时候发现的这个很久之前写的小程序,隐隐约约的记得,这个游戏的规则貌似是4个人手中各拿一张牌,然后进行加减乘除四则运算求得24,第一个算出来的人得1分,然后累积下去,最后得分最多的人获胜?当时怎么写的早就忘记了,貌似用了递归,其他的就没什么大不了的了。 First: Second: Third: Fourth: The Result is:

Read More
Close Bitnami banner
Bitnami