js-->贪吃蛇小游戏,能成功玩

简介:

<!doctype html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>贪吃蛇小游戏</title>

<script type="text/javascript">

//将地图声明为全局

var plat=null;

//请食物声明为全局

var food=null;

//请蛇声明为全局

var snake =null;

//定时器

var setTime=null;

//地图类

function Plat(){

//宽度

this.width=1000;

//高度

this.height=600;

//背景

//this.color = 'url(images/sfq_3.jpg)';

this.color="#eeeeee";

//定位方式

this.position='absolute';

this.margin  = "200";

//保存地图对象

this._plat=null;

//创建地图的方法

this.show = function(){

//在内存中创建一个div对象

this._plat = document.createElement("div");

//添加样式

this._plat.style.width=this.width+"px";

this._plat.style.height=this.height+"px";

//this._plat.style.backgroundImage=this.color;

this._plat.style.backgroundColor=this.color;

this._plat.style.position = this.position;

this._plat.style.marginTop= this.margin+"px";

this._plat.style.marginLeft= 400+"px";

//将内存中的div放入到body对象中

document.getElementsByTagName('body')[0].appendChild(this._plat);

};

//将食物添加到地图中

this.AppendChild = function(obj){

this._plat.appendChild(obj);

}

}

//食物类

function Food(){

this.width = 20;

this.height = 20;

this.color="red";

//this.color = 'url(images/furit_'+1+'.png)';

this.position='absolute';

this.radius="50%";

//食物在地图中的横纵坐标值

this.x=0;

this.y=0;

this._food=null;

this.show = function(){

if(this._food==null){

this._food = document.createElement("div");

this._food.style.width=20+'px';

this._food.style.height=20+'px';

this._food.style.borderRadius =this.radius;

this._food.style.position = this.position;

//document.getElementsByTagName('div')[0].appendChild(div);

//通过地图对象中的方法把食物追加到地图中。

plat.AppendChild(this._food);

}

//var i = Math.round(Math.random()*5+1);

//this.color = 'url(images/furit_'+i+'.png)';

//随机出x,y的坐标

//this._food.style.backgroundImage=this.color;

this._food.style.backgroundColor=this.color;

this.x  =Math.floor(Math.random()*50); //0-49

this.y  =Math.floor(Math.random()*30); //0-30

this._food.style.left=(this.x*20)+"px";

this._food.style.top =(this.y*20)+"px";

};

}

//蛇类

function Snake(){

this.radius="50%";

this.width=20;

this.height=20;

//记录蛇节的数目

this.festival=[[3,3,'pink',null],[2,3,'blue',null],[1,3,'blue',null]];

this.position='absolute';

//移动方式

this.direction='right';

//设置蛇的方向

this.setDirection = function(code){

console.log(code);

/*

if(this.direction=='right'&&code==37){

alert("你死了");

}

*/

switch(code){

case 37:

if(this.direction=='right'){

alert("你撞尾了");

clearInterval(setTime);

}

  this.direction='left';

  break;

case 38:

if(this.direction=='down'){

alert("你撞尾了");

clearInterval(setTime);

}

this.direction='top';

break;

case 39:

if(this.direction=='left'){

alert("你撞尾了");

clearInterval(setTime);

}

this.direction='right';

break;

case 40:

if(this.direction=='top'){

alert("你撞尾了");

clearInterval(setTime);

}

this.direction='down';

break;

}

}

this.show = function(){

  for(var i=0;i<this.festival.length;i++){

   //判断蛇节是否存在,存在就不在创建了。

if(this.festival[i][3]==null){

this.festival[i][3]= document.createElement("div");

this.festival[i][3].style.width=20+"px";

this.festival[i][3].style.height=20+"px";

this.festival[i][3].style.position = this.position;

this.festival[i][3].style.backgroundColor=this.festival[i][2];

plat.AppendChild(this.festival[i][3]);

this.festival[i][3].style.borderRadius =this.radius;

}

this.festival[i][3].style.left = this.festival[i][0]*this.width+"px";

this.festival[i][3].style.top  = this.festival[i][1]*this.height+"px";

  }

};

//让蛇动起来.

this.move = function(){

//蛇节的长度

var length = this.festival.length-1;

for(var i=length;i>0;i--){

//让所有蛇节移动


this.festival[i][0] = this.festival[i-1][0];

this.festival[i][1] = this.festival[i-1][1];

}

//蛇头移动

if(this.direction=='right'){

this.festival[0][0]+=1;

}else if(this.direction=='top'){

this.festival[0][1]-=1;

}else if(this.direction=='down'){

this.festival[0][1]+=1;

}else if(this.direction=='left'){

this.festival[0][0]-=1;

}

//判断吃到食物

if(this.festival[0][0]==food.x&&this.festival[0][1]==food.y){

 var x = this.festival[length][0];

 var y = this.festival[length][1];

this.festival.push([x,y,'blue',null]);

food.show();

}

//判断是否超出区域!

if(this.festival[0][0]==50&&this.direction=='right'){

alert("怎么不小心啊!,撞墙了");

clearInterval(setTime);

return;

}else if(this.festival[0][0]==-1&&this.direction=='left'){

alert("怎么不小心啊!,撞墙了");

clearInterval(setTime);

return;

}else if(this.festival[0][1]==-1&&this.direction=='top'){

alert("怎么不小心啊!,撞墙了");

clearInterval(setTime);

return;

}else if(this.festival[0][1]==30&&this.direction=='down'){

alert("怎么不小心啊!,撞墙了");

clearInterval(setTime);

return;

}

for(var i=length;i>0;i--){

if(this.festival[0][0]==this.festival[i][0]&&this.festival[0][1]==this.festival[i][1]){

alert("你死了!");

clearInterval(setTime);

return;

}

}

this.show();


}

}

window.onload=function(){

//实例化地图对象

plat = new Plat();

//将地图对象添加到body元素中里

plat.show();

//实例化食物对象

 food = new Food();

//将食物对象放到地图中

food.show();

//实例化蛇对象

 snake = new Snake();

//将蛇对象放到地图中

snake.show();

setTime=setInterval('snake.move()',100);

//监听键盘事件

document.onkeyup =function(event){

var code;

if(window.event){

code = window.event.keyCode;

}else{

code = event.keyCode;

}

snake.setDirection(code);

}

};

</script>

</head>

<body>

</body>

</html>

1
< br >




本文转自 沉迷学习中 51CTO博客,原文链接:http://blog.51cto.com/12907581/1927492,如需转载请自行联系原作者
相关文章
|
1月前
|
JavaScript
JS实现简单的打地鼠小游戏源码
这是一款基于JS实现简单的打地鼠小游戏源码。画面中的九宫格中随机出现一个地鼠,玩家移动并点击鼠标控制画面中的锤子打地鼠。打中地鼠会出现卡通爆破效果。同时左上角统计打地鼠获得的分数
93 1
|
28天前
|
JavaScript 前端开发
js+jquery实现贪吃蛇经典小游戏
本项目采用HTML、CSS、JavaScript和jQuery技术,无需游戏框架支持。通过下载项目文件至本地,双击index.html即可启动贪吃蛇游戏。游戏界面简洁,支持方向键控制蛇移动,空格键实现游戏暂停与恢复功能。
57 14
|
1月前
|
JavaScript
原生JS实现斗地主小游戏
这是一个原生的JS网页版斗地主小游戏,代码注释全。带有斗地主游戏基本的地主、选牌、提示、出牌、倒计时等功能。简单好玩,欢迎下载
33 7
|
1月前
|
JavaScript
JS趣味打字金鱼小游戏特效源码
hi fish是一款打字趣味小游戏,捞出海里的鱼,捞的越多越好。这款游戏用于电脑初学者练习打字。初学者可以根据自己的水平设置游戏难度。本段代码可以在各个网页使用,有需要的朋友可以直接下载使用,本段代码兼容目前最新的各类主流浏览器,是一款非常优秀的特效源码!
35 3
|
1月前
|
移动开发 HTML5
html5+three.js公路开车小游戏源码
html5公路开车小游戏是一款html5基于three.js制作的汽车开车小游戏源代码,在公路上开车网页小游戏源代码。
61 0
html5+three.js公路开车小游戏源码
|
1月前
|
JavaScript
JS趣味打字金鱼小游戏特效源码
hi fish是一款打字趣味小游戏,捞出海里的鱼,捞的越多越好。这款游戏用于电脑初学者练习打字。初学者可以根据自己的水平设置游戏难度。本段代码可以在各个网页使用,有需要的朋友可以直接下载使用,本段代码兼容目前最新的各类主流浏览器,是一款非常优秀的特效源码!
38 0
JS趣味打字金鱼小游戏特效源码
|
3月前
|
JavaScript 前端开发 开发工具
五子棋小游戏(JS+Node+Websocket)可分房间对战
本文介绍了通过JS、Node和WebSocket实现的五子棋游戏,支持多人在线对战和观战功能。
103 1
五子棋小游戏(JS+Node+Websocket)可分房间对战
|
3月前
|
移动开发 前端开发 JavaScript
JS配合canvas实现贪吃蛇小游戏_升级_丝滑版本_支持PC端和移动端
本文介绍了一个使用JavaScript和HTML5 Canvas API实现的贪吃蛇游戏的升级版本,该版本支持PC端和移动端,提供了丝滑的转向效果,并允许玩家通过键盘或触摸屏控制蛇的移动。代码中包含了详细的注释,解释了游戏逻辑、食物生成、得分机制以及如何响应不同的输入设备。
84 1
JS配合canvas实现贪吃蛇小游戏_升级_丝滑版本_支持PC端和移动端
|
3月前
|
移动开发 前端开发 JavaScript
JS配合canvas实现贪吃蛇小游戏
本文通过详细的代码示例介绍了如何使用JavaScript和HTML5的Canvas API实现一个贪吃蛇游戏,包括蛇的移动、食物的生成、游戏的开始与结束逻辑,以及如何响应键盘事件来控制蛇的方向。
50 1
|
1月前
|
JavaScript 前端开发
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
27 1
JavaScript中的原型 保姆级文章一文搞懂