js贪吃蛇 纯手打 代码比较复杂 自己瞎弄的 bug 比较多 自己一点一点排除弄 完全原创

//虽然代码没有别人写的简单,但是这是自己的思想,通过这次实例,学到了很多,也发现了很多不足,努力学习啊,小小的贪吃蛇也包含了很多东西还有

//好多问题需要解决,比如,如何判断蛇头碰到蛇身,如何让食物不出现在蛇的身上等,欢迎大家一起探讨

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>js控制移动</title>

<script>

window.onload=function(){

var snake={

timer:null,

oEvent:null,

dir:null,

sp:20,

speed:300,

num:0,

oDiv:document.getElementsByClassName(‘lei‘)[0],

p:document.getElementsByClassName(‘lei‘),

oBigDiv:document.getElementById(‘lei1‘),

color:function(){//颜色分离

for(var i=0;i<snake.p.length;i++){

if(i%2==0)

snake.p[i].style.background=‘red‘

}

},

move:function(oEvent){//控制方向

//alert(snake.oDiv.style[snake.dir]);

switch(oEvent.keyCode){

case 97:clearInterval(snake.timer);

snake.speed=snake.speed-50;

snake.timer=setInterval(function(){

snake.oDiv.style[snake.dir]=snake.oDiv.offsetLeft+snake.sp+‘px‘;

snake.follow();

},snake.speed);

break;

case 98:clearInterval(snake.timer);snake.speed=snake.speed+50;

snake.timer=setInterval(function(){

snake.oDiv.style[snake.dir]=snake.oDiv.offsetLeft+snake.sp+‘px‘;

snake.follow();

},snake.speed);

break;

case 32:clearInterval(snake.timer);break;

case 37: clearInterval(snake.timer);

snake.timer=setInterval(function(){

snake.dir=‘left‘;

snake.sp=-20;

snake.oDiv.style.left=snake.oDiv.offsetLeft-20+‘px‘;

snake.follow();

},snake.speed);break;

case 39: clearInterval(snake.timer);

snake.timer=setInterval(function(){

snake.dir=‘left‘;

snake.sp=20;

snake.oDiv.style.left=snake.oDiv.offsetLeft+20+‘px‘;

snake.follow();

},snake.speed);break;

case 38: clearInterval(snake.timer);

snake.timer=setInterval(function(){

snake.dir=‘top‘;

snake.sp=-20;

snake.oDiv.style.top=snake.oDiv.offsetTop-20+‘px‘;

snake.follow();

},snake.speed);break;

case 40:clearInterval(snake.timer);

snake.timer=setInterval(function(){

snake.dir=‘top‘;

snake.sp=20;

snake.oDiv.style.top=snake.oDiv.offsetTop+20+‘px‘;

snake.follow();

},snake.speed);break;

}

},

follow:function(){

for(var i=snake.p.length-1;i>0;i--){

snake.p[i].style.left=snake.p[i-1].offsetLeft+‘px‘;

snake.p[i].style.top=snake.p[i-1].offsetTop+‘px‘;

}

if(snake.oDiv.offsetLeft>snake.oBigDiv.offsetWidth-snake.oDiv.offsetWidth){

alert(‘游戏结束,共吃‘+snake.num+‘个食物‘);

clearInterval(snake.timer);

document.onkeydown=null;

}

if(snake.oDiv.offsetLeft<0)

{

alert(‘游戏结束,共吃‘+snake.num+‘个食物‘);

clearInterval(snake.timer);

document.onkeydown=null;

}

if(snake.oDiv.offsetTop<0)

{

alert(‘游戏结束,共吃‘+snake.num+‘个食物‘);

clearInterval(snake.timer);

document.onkeydown=null;

}

if(snake.oDiv.offsetTop>snake.oBigDiv.offsetHeight-snake.oDiv.offsetHeight){

alert(‘游戏结束,共吃‘+snake.num+‘个食物‘);

clearInterval(snake.timer);

document.onkeydown=null;

}

if((snake.oDiv.offsetLeft==snake.pos.x)&&(snake.oDiv.offsetTop==snake.pos.y)){

snake.num++;

snake.eat();

}

},

pos:{

x:Math.round(Math.random()*39)*20,

y:Math.round(Math.random()*39)*20,

},

food:function(){

var food=document.createElement(‘div‘);

food.className=‘food‘;

food.style.left=snake.pos.x+‘px‘;

food.style.top=snake.pos.y+‘px‘;

snake.oBigDiv.appendChild(food);

},

eat:function(){//吃食物

var she=document.createElement(‘div‘);

she.className=‘lei‘;

snake.oBigDiv.appendChild(she);

snake.pos.x=Math.round(Math.random()*39)*20;

snake.pos.y=Math.round(Math.random()*39)*20;

snake.oBigDiv.removeChild(snake.oBigDiv.getElementsByClassName(‘food‘)[0]);

snake.food();

}

}

snake.food();

document.onkeydown=function(ev){

var oEvent=ev||event;

snake.color();

snake.oEvent=oEvent;

snake.move(snake.oEvent);

}

}

</script>

</head>

<style>

.food{

position:absolute;

background:#FF0;

width:20px;

height:20px;

float:left;

}

.lei{

width:20px;

height:20px;

background:#063;

position:absolute;

float:left;

}

#lei1{

border:1px solid #000;

width:798px;

height:798px;

position:absolute;

top:150px;

left:50px;

}

#text{

background:#9F3;

width:800px;

height:100px;

position:absolute;

left:50px;

}

</style>

<body>

<div id="text">

<h1>说明:上下左右控制方向,小键盘1加速,2减速,space键暂停,上下左右随便开始</h1>

</div>

<div id="lei1">

<div class="lei"></div>

<div class="lei"></div>

<div class="lei"></div>

<div class="lei"></div>

<div>

</body>

</html>

时间: 2024-10-05 04:58:22

js贪吃蛇 纯手打 代码比较复杂 自己瞎弄的 bug 比较多 自己一点一点排除弄 完全原创的相关文章

JS贪吃蛇游戏

<!DOCTYPE html><html> <head>    <meta charset="utf-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <title>JS贪吃蛇游戏</title>    <style>    * {        margin: 0;    

贪吃蛇C语言代码

贪吃蛇C语言代码 贪吃蛇C语言代码 手动贪吃蛇 智能贪吃蛇 1.手动贪吃蛇 /*蛇越长跑得越快*/ /*作者:SGAFPZ*/ #include <stdio.h> #include <windows.h> #include <stdlib.h> #include <math.h> //#include <unistd.h> #include <conio.h> #include <string.h> #include &

JS贪吃蛇小游戏

效果图展示: 具体实现代码如下: (1)html部分 1 !DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>贪吃蛇</title> 6 <link rel="stylesheet" type="text/css" href="main.css"> 7 </h

贪吃蛇的java代码分析(一)

自我审视 最近自己学习java已经有了一个多月的时间,从一开始对变量常量的概念一无所知,到现在能勉强写几个小程序玩玩,已经有了长足的进步.今天没有去学习,学校里要进行毕业答辩和拍毕业照了,于是请了几天的假,自己也就有了一点空余的时间.回想这一个多月,自己做到好的地方是把大部分时间都用在了看书和码代码上,学习的重点放在了追求对知识的理解和内容的广度之上.书籍方面阅读了<java核心技术>和<java编程思想>,虽然说没有理解全部的内容,<编程思想>一书也只看了300多页,

贪吃蛇的java代码分析(二)

代码剖析 贪吃蛇是一款十分经典的小游戏,对初入coding的朋友来说,拿贪吃蛇这样一个案例来练手十分合适,并不高的难度和成功后的成就感都是学习所必须的.下面我将依照我当时的思路,来逐步分析实现的整个过程. 让我们逐一分析.首先,整个游戏最基本的元素是地图.在java中用于绘图的类是swing和awt,在这里主要用到swing类.swing中用于窗口显示的类有JFrame及其子类.JFrame可以直接添加组件,但其本质是将组件添加到JFrame中的一个默认面板里,为了代码清晰,我会使用JPanel

Java实现贪吃蛇游戏【代码】

花了两个下午写了一个贪吃蛇小游戏,本人想写这游戏很长时间了.作为以前诺基亚手机上的经典游戏,贪吃蛇和俄罗斯方块一样,都曾经在我们的童年给我们带来了很多乐趣.世间万物斗转星移,诺基亚曾经作为手机业的龙头老大,现如今也一步步走向衰落,被收购,再过不久估计就要退出手机业务了,而贪吃蛇这款游戏也基本上没人玩了,甚至在新一代人的印象中都已毫无记忆了...但是,这款游戏在它基础上经过改造其实可以弄出很多花样,也确实可以在一定程度上锻炼自己的编程能力.前不久十分火热的贪吃蛇大作战其实就可以看做是在这款游戏的基

贪吃蛇 HTML5 Canvas代码

首先建立一个二维类 function Class_Dim(cx, cy){ var x = cx; var y = cy; this.getx = function(){ return x; }; this.gety = function(){ return y; }; this.setx = function(tx){ x = tx; }; this.sety = function(ty){ y = ty; }; }; 然后设置一些全局变量 var gameRunning = true;//游

html,css,js,贪吃蛇网页游戏

游戏效果如图: 实现代码如下: <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title>贪吃蛇游戏</title> </head> <body> <h1>石健涛</h1> <div id="gameBox" style="text-align: center;&quo

js 贪吃蛇 大部分显而易见的问题已解决 但是代码过于复杂 欢迎纠错

//代码相比,上次做了优化,解决自身缠绕问题 解决后退问题  食物出现问题与自身缠绕问题大同小异,这里不做代码演示,各位如有兴趣,可以自己参考,自作 //鄙人拙作,献丑了 //时间:6小时 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xml