博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery贪吃蛇--jQuery学习
阅读量:7015 次
发布时间:2019-06-28

本文共 1419 字,大约阅读时间需要 4 分钟。

我用JQuery有一段时间了,越来越体会到其强大之处,于是自己尝试写了一个贪吃蛇小游戏,拿来与网友分享一下。

 

1. 了解JQuery.Timers

 

除用到了jQuery1.5.1之外,我还用到了jQuery.timers-1.2,作为定时器。它比Js的setInterval函数提供了更友好的接口。

JQuery Timers提供了三个函数:

1. everyTime(时间间隔, [定时器名称], 函式名称, [次数限制], [等待函式程序完成])

2. oneTime(时间间隔, [定时器名称], 呼叫的函式)

3. stopTime ([定时器名称], [函式名称])

示例:

1 $('body').everyTime(300, 'MainTimer', function () {2     //do something every 300ms.   3 }

把定时器放到body上,确保定时器不会随被移除。

这样就能定时的更新贪吃蛇的位置,并且做一些逻辑判断。

2. 键盘响应

jquery提供了一系列的键盘事件函数:

1、keydown()

keydown事件会在键盘按下时触发.
2、keyup()
keyup事件会在按键释放时触发,也就是你按下键盘起来后的事件
3、keypress()
keypress事件会在敲击按键时触发,我们可以理解为按下并抬起同一个按键

可以通过回调函数的参数event.keyCode来获取

$(document).keydown(function(event){    if(event.keyCode == 37){
//左方向键 //do somethings; }else if (event.keyCode == 39){
//右方向键 //do somethings; }});

所有的键盘代码表,可参考

3. 创建、移动蛇身

蛇身是一系列的img标记,使用一个小的方形图片,为了能固定位置,需要将样式设置为:

.game{
position: fixed; /* 为了兼容IE7 */ _position: absolute;}

一个蛇身节点就是:

在定时器回调中,当要更新蛇身位置时,从后往前遍历节点,逐一设置为上一个节点的位置,即实现了向前移动:

var i;for (i = snakeLength - 1; i > 0; i--) {    $("#node" + i).css("left", $("#node" + (i - 1)).css("left"));    $("#node" + i).css("top", $("#node" + (i - 1)).css("top"));}

其他的大家应该就明白了,主要实现食物、越界判断、撞自己判断、吃食物判断、变长、变快、记分等。

上代码:

1   2   3     Snaker  4     
5 6 7 121 122 123 125 126
View Code

初学jQuery,经验尚浅,有很多做的不好的地方,希望大家批评指正。

 

转载于:https://www.cnblogs.com/pleiades/p/3147634.html

你可能感兴趣的文章
你性格那么软,总是经常改变想法
查看>>
NeHe OpenGL教程 第十七课:2D图像文字
查看>>
学习SpringMVC——从HelloWorld开始
查看>>
awk打印指定列以后的所有内容
查看>>
用 kGDB 调试 Linux 内核
查看>>
vuejs2.0子组件改变父组件的数据
查看>>
P1019 单词接龙
查看>>
git的版本回退探索
查看>>
H3c 配置ssh acl
查看>>
Dedecms判断当前栏目下是否有子栏目
查看>>
【PIC学习第2例】PIC16F877A LED闪烁
查看>>
SQL2005中时,Diagrams的问题
查看>>
拨云见日,任重道远 ——第六届云计算大会感悟
查看>>
CentOS VMware 下SSH配置方法详解
查看>>
PHP错误级别 error_reporting() 函数详解
查看>>
WIndows 使用VS编译 Lua5
查看>>
什么是“单播”“组播”和“多播”
查看>>
flex---->图表控件
查看>>
分析函数调用关系图(call graph)的几种方法
查看>>
11.0592M晶振与12M晶振
查看>>