<html>
<head>
</head>
<body>
<div style="float:left;">当前速度1:<button οnclick="jiancl()">-</button><span id="sudu">300ms</span><button οnclick="jiacl()">+</button></div>
<div style="float:right;">当前速度2:<button οnclick="jiancl2()">-</button><span id="sudu2">300ms</span><button οnclick="jiacl2()">+</button></div>
<canvas id="mcan" width="300px" height="200px" style="background-color:#CCFF99">您的浏览器版本过低</canvas>
</body>
<script type="text/javascript">
var st1 = "红方 GAMEOVER!",st2 = "蓝方 GAMEOVER!";
var obj = document.getElementById("mcan");
var ctx = obj.getContext("2d");//canvas对象
var width = 300,height = 200;
var len = 10;//模块长宽
var keyData = [{k:38,x:0,y:-len},{k:40,x:0,y:len},{k:37,x:-len,y:0},{k:39,x:len,y:0}];
var keyData2 = [{k:87,x:0,y:-len},{k:83,x:0,y:len},{k:65,x:-len,y:0},{k:68,x:len,y:0}];
//贪吃蛇
var data = [[220,20]];//初始位置
var data2 = [[20,20]];//初始位置
var eatData;
var sudu = 300,sudu2 = 300;
getSj();//要吃的位置
+function(){
ctx.fillStyle = "red";
ctx.fillRect(data[0][0],data[0][1],len,len);
ctx.fillStyle = "blue";
ctx.fillRect(data2[0][0],data2[0][1],len,len);
//ctx.moveTo(0,0);
//ctx.lineTo(50,20);
//ctx.stroke();
}();
var si,i,si2,i2;
document.onkeydown = function(e){
var kcode = e.keyCode;
if(kcode<97){
if(kcode>36&&kcode<41){
i = -1;
if(kcode==38){i=0}
else if(kcode==40){i=1}
else if(kcode==37){i=2}
else if(kcode==39){i=3}
if(i!=-1){
clearInterval(si);
si = window.setInterval("testFunction()",sudu);
animateDraw();
}
}else{// 87 83 65 68
i2 = -1;
if(kcode==87){i2=0}
else if(kcode==83){i2=1}
else if(kcode==65){i2=2}
else if(kcode==68){i2=3}
if(i2!=-1){
clearInterval(si2);
si2 = window.setInterval("testFunction2()",sudu);
animateDraw2();
}
}
}else{
//188 190 97 98
if(kcode==188){
jiancl2();
}else if(kcode==190){
jiacl2();
}else if(kcode==97){
jiancl();
}else if(kcode==98){
jiacl();
}
}
}
function jiancl(){
clearInterval(si);
sudu = sudu-10;
document.getElementById("sudu").innerHTML = sudu+"ms";
si = window.setInterval("testFunction()",sudu);
animateDraw();
}
function jiancl2(){
clearInterval(si2);
sudu2 = sudu2-10;
document.getElementById("sudu2").innerHTML = sudu2+"ms";
si2 = window.setInterval("testFunction2()",sudu2);
animateDraw2();
}
function jiacl(){
clearInterval(si);
sudu = sudu+10;
document.getElementById("sudu").innerHTML = sudu+"ms";
si = window.setInterval("testFunction()",sudu);
}
function jiacl2(){
clearInterval(si2);
sudu2 = sudu2+10;
document.getElementById("sudu2").innerHTML = sudu2+"ms";
si2 = window.setInterval("testFunction2()",sudu2);
}
function testFunction(){
animateDraw();
}
function testFunction2(){
animateDraw2();
}
function animateDraw(){
if(i!=-1){
var x = data[0][0]+keyData[i].x;
var y = data[0][1]+keyData[i].y;
for(var m = 0;m<data2.length;m++){
if(m!=0){
if(x==data2[m][0]&&y==data2[m][1]){
alert(st1);
clearInterval(si);
return;
}
}else{
if(x==data2[0][0]&&y==data2[0][1]){
if(data.length>data2.length){
alert(st2);
clearInterval(si);
return;
}else{
alert(st1);
clearInterval(si);
return;
}
}
}
}
if(x>=0&&x<width&&y>=0&&y<height){
if(x==eatData[0]&&y==eatData[1]){
getSj();
}else{
draw("#CCFF99",data.pop());
}
data.unshift([x,y]);
draw("red",data[0]);
}else{
clearInterval(si);
alert(st1+" GAME OVER!");
}
}
}
function animateDraw2(){
if(i2!=-1){
var x = data2[0][0]+keyData2[i2].x;
var y = data2[0][1]+keyData2[i2].y;
for(var m = 0;m<data.length;m++){
if(m!=0){
if(x==data[m][0]&&y==data[m][1]){
alert(st2);
return;
}
}else{
if(x==data[0][0]&&y==data[0][1]){
if(data2.length>data.length){
alert(st1);
clearInterval(si);
return;
}else{
alert(st2);
clearInterval(si);
return;
}
}
}
}
if(x>=0&&x<width&&y>=0&&y<height){
if(x==eatData[0]&&y==eatData[1]){
getSj();
}else{
draw("#CCFF99",data2.pop());
}
data2.unshift([x,y]);
draw("blue",data2[0]);
}else{
clearInterval(si2);
alert(st2);
}
}
}
function getSj(){
var now=new Date();
var x = now.getSeconds()%(width/len-1)*len;
var y = now.getSeconds()%(height/len-1)*len;
var b = false;
for(var m = 0;m<data.length;m++){
if(m.x==x&&m.y==y)b = true;
}
if(!b){
eatData = [x,y];
draw("#"+randomColor(),eatData);
}
}
function randomColor(){
var rand = Math.floor(Math.random( ) * 0xFFFFFF).toString(16);
if(rand.length == 6){
return rand;
}else{
return randomColor();
}
}
function draw(a,b){
ctx.fillStyle = a;
ctx.fillRect(b[0],b[1],len,len);
}
</script>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)