zoukankan
html css js c++ java
贪食蛇JS源码
<
html xmlns
=
"
http://www.w3.org/1999/xhtml
"
>
<
head
>
<
title
>
Snake
</
title
>
<
style type
=
"
text/css
"
>
body
{
background
-
color:White;
font
-
size:12px;
}
#main
{
position:absolute;
410px;
height:310px;
border
-
style:inset;
border
-
color:#0000cc;
border
-
5px;
}
#monitor
{
position:absolute;
top:330px;
}
.snake
{
20px;
height:20px;
overflow:hidden;
background
-
color:blue;
position:absolute;
}
.food
{
20px;
height:20px;
overflow:hidden;
background
-
color:red;
position:absolute;
}
</
style
>
<
script type
=
"
text/jscript
"
>
var
AllDiv, AllSpan
var
Sx, Sy;
//
Snake的头
var
Gox, Goy;
//
移动方向
var
IsStart
=
false
;
//
是否开始
var
Fx, Fy;
//
食物的地址
var
TimeHandle;
var
IsOver
=
false
;
var
Sec
=
0
;
//
记时
function
page_load()
{
CreateSnake(
0
,
0
);
CreateSnake(
0
,
20
);
CreateSnake(
20
,
20
);
AllDiv
=
main.all.tags('DIV');
CreatFood();
AllSpan
=
main.all.tags('SPAN');
}
function
CreateSnake(x,y)
{
main.innerHTML
+=
"
<div class=\
"
snake\
"
style=\
"
top:
"
+y+
"
; left:
"
+x+
"
\
"
></div>
"
;
Sx
=
x;
Sy
=
y;
dSx.innerText
=
Sx;
dSy.innerText
=
Sy;
}
function
CreatFood()
{
if
(AllSpan
!=
null
)
{
AllSpan[
0
].removeNode(
true
);
}
do
{
Fx
=
Math.round(Math.random()
*
19
)
*
20
;
Fy
=
Math.round(Math.random()
*
14
)
*
20
;
dFx.innerText
=
Fx;
dFy.innerText
=
Fy;
}
while
(CheckBody(Fx,Fy))
main.innerHTML
+=
"
<span class=\
"
food\
"
style=\
"
top:
"
+Fy+
"
; left:
"
+Fx+
"
\
"
></span>
"
;
}
function
Move()
{
var
NSx
=
Sx
+
Gox;
var
NSy
=
Sy
+
Goy;
//
下个格子
//
是否GameOver
IsOver
=
IsGameOver(NSx,NSy);
if
(IsOver)
{
return
;
}
if
(NSx
==
Fx
&&
NSy
==
Fy)
{
CreatFood();
}
else
{
AllDiv[
0
].removeNode(
true
);
//
移动
}
CreateSnake(NSx,NSy);
}
function
IsGameOver(x,y)
{
if
(x
<
0
||
x
>=
400
||
y
>=
300
||
y
<
0
)
{
return
true
;
}
return
CheckBody(x,y)
}
//
键盘控制
function
KeyDown(){
if
(IsOver)
return
;
Key
=
event.keyCode
switch
(Key){
case
37
:Dir(
-
1
,
0
);
break
//
左
case
39
:Dir(
1
,
0
);
break
//
右
case
38
:Dir(
0
,
-
1
);
break
//
上
case
40
:Dir(
0
,
1
);
break
}
//
下
return
false
}
function
Dir(x,y)
{
if
(Gox
==
-
x
*
20
&&
Goy
==
-
y
*
20
)
return
Gox
=
x
*
20
;
Goy
=
y
*
20
;
if
(IsStart
==
false
)
{
IsStart
=
true
;
PlayGame();
}
dGox.innerText
=
Gox;
dGoy.innerText
=
Goy;
}
//
开始游戏,并不停移动
function
PlayGame()
{
Sec
++
;
if
(IsOver)
{
clearTimeout(TimeHandle);
}
else
{
Move();
TimeHandle
=
setTimeout('PlayGame()',
50
)
}
var
d
=
new
Date(
0
,
0
,
0
,
0
,
0
,
0
,
0
);
d.setTime(d.getTime()
+
Sec
*
50
);
dSec.innerText
=
Sec;
dTime.innerText
=
d.toLocaleTimeString();
}
//
检测食物
function
CheckBody(x,y)
{
for
(
var
i
=
0
; i
<
AllDiv.length;i
++
)
{
if
(AllDiv[i].style.left
==
x
+
"
px
"
&&
AllDiv[i].style.top
==
y
+
"
px
"
)
{
return
true
;
}
}
return
false
;
}
</
script
>
</
head
>
<
body onload
=
"
page_load()
"
onkeydown
=
"
KeyDown()
"
>
<
div id
=
"
main
"
>
</
div
>
<
div id
=
"
monitor
"
>
<
input type
=
"
button
"
value
=
"
test
"
onclick
=
"
clearTimeout(TimeHandle)
"
/>
<
fieldset
>
<
legend
>
参数
</
legend
>
<
ul
>
<
li
>
Sx:
<
span id
=
"
dSx
"
></
span
></
li
>
<
li
>
Sy:
<
span id
=
"
dSy
"
></
span
></
li
>
<
li
>
Fx:
<
span id
=
"
dFx
"
></
span
></
li
>
<
li
>
Fy:
<
span id
=
"
dFy
"
></
span
></
li
>
<
li
>
Gox:
<
span id
=
"
dGox
"
></
span
></
li
>
<
li
>
Goy:
<
span id
=
"
dGoy
"
></
span
></
li
>
<
li
>
Sec:
<
span id
=
"
dSec
"
></
span
></
li
>
<
li
>
Time:
<
span id
=
"
dTime
"
></
span
></
li
>
</
ul
>
</
fieldset
>
</
div
>
</
body
>
</
html
>
查看全文
相关阅读:
pytest框架运用
unitTest学习
发送邮件
python 连接远程服务器,修改时间
Redis基础
django 知识点扩展
ACM 题目 1487: [蓝桥杯][算法提高VIP]不同单词个数统计
Leetcode 面试题 08.01. 三步问题
Leetocode 198. 打家劫舍
Leetcode 121. 买卖股票的最佳时机
原文地址:https://www.cnblogs.com/goodspeed/p/67616.html
最新文章
TP6 前一个项目可以,第二个项目配置多域名绑定应用一直失效
css3 横屏
symfony2已有数据表导入实体时报错 Doctrine does not support reverse engineering from tables that don't have a primary key
微信公众号自定义菜单添加图标简便方法
php处理url的rawurlencode:可处理空格加号
symfony的几个请求变量和方法
symfony中使用__construct获取services对象
php curl下载文件由于空格导致下载文件失败
php获取纳秒方法
Java动手动脑
热门文章
Java日报10.3
Java日报10.2
JAVA日报10.1
JAVA日报9.30
Java学习第56天+周报
JAVA学习第55天
Java学习第54天
Java学习第53天
ui自动化,不显示UI界面运行
fiddler抓取手机模拟器数据
Copyright © 2011-2022 走看看