js实现贪吃蛇小游戏
来源:互联网 发布:淘宝客微博推广技巧 编辑:程序博客网 时间:2024/04/28 01:10
<html>
<head>
<script type="text/javascript">
var map = null;
//面板
function Map(){
this.width = 800;
this.height = 400;
this.color = 'lightblue';
this.showmap = function(){
var ban = document.createElement('div');
ban.style.width = this.width+'px';
ban.style.height = this.height+'px';
ban.style.position ='absolute';
ban.style.left =0;
ban.style.top = 0;
ban.style.backgroundColor = this.color;
document.body.appendChild(ban);
}
}
//食物
function Food(){
this.width = 20;
this.color = "red";
this.shiwu = null;
this.showfood = function(){
if(this.shiwu == null){
this.shiwu = document.createElement('div');
this.shiwu.style.width = this.width+'px';
this.shiwu.style.height = this.width+'px';
this.shiwu.style.position ='absolute';
}
this.shiwux = Math.floor(Math.random()*40);
this.shiwuy = Math.floor(Math.random()*20);
this.shiwu.style.left = this.shiwux*this.width+"px";
this.shiwu.style.top = this.shiwuy*this.width+"px";
this.shiwu.style.backgroundColor = this.color;
document.body.appendChild(this.shiwu);
}
}
//绘制小蛇
function Snake(){
this.direct = "right";
this.range = 20;
this.color = "green";
this.duans = [[0,1,this.color,null],[1,1,this.color,null],[2,1,this.color,null],[3,1,'red',null]];
//显示小蛇
this.showsnake = function(){
for(var i in this.duans){
if(this.duans[i][3]==undefined){
this.duans[i][3] = document.createElement('div');
this.duans[i][3].style.width = this.range+'px';
this.duans[i][3].style.height = this.range+'px';
this.duans[i][3].style.backgroundColor = this.duans[i][2];
}
this.duans[i][3].style.position = 'absolute';
this.duans[i][3].style.left =this.range*this.duans[i][0]+'px';
this.duans[i][3].style.top = this.range*this.duans[i][1]+'px';
document.body.appendChild(this.duans[i][3]);
}
}
//移动小蛇
this.movesnake = function(){
for(i=0;i<this.duans.length-1;i++){
this.duans[i][0] = this.duans[i+1][0];
this.duans[i][1] = this.duans[i+1][1];
}
if(this.direct=='right')
this.duans[this.duans.length-1][0] +=1;
if(this.direct=='left')
this.duans[this.duans.length-1][0] -=1;
if(this.direct=='up')
this.duans[this.duans.length-1][1] -=1;
if(this.direct=='down')
this.duans[this.duans.length-1][1] +=1;
//判断蛇是否吃到食物
if( this.duans[this.duans.length-1][0]==food.shiwux&&
this.duans[this.duans.length-1][1]==food.shiwuy){
var newduan = [this.duans[0][0], this.duans[0][1],this.color,null];
this.duans.unshift(newduan);
food.showfood();
}
//判断是否出界 0,0 40,0 0,20 40,20
if( this.duans[this.duans.length-1][0]<0
||this.duans[this.duans.length-1][0]>39||
this.duans[this.duans.length-1][1]<0||
this.duans[this.duans.length-1][1]>19){
alert('game over');
clearInterval(mytime);
return false;
}
//判断是否吃到自己
for(var i=0;i<this.duans.length-1;i++){
if( this.duans[i][0] == this.duans[this.duans.length-1][0]&&
this.duans[i][1] == this.duans[this.duans.length-1][1]){
alert('game over by yourself');
clearInterval(mytime);
return false;
}
}
this.showsnake();
}
}
window.onload = function(){
map = new Map();
map.showmap();
food = new Food();
food.showfood();
snake = new Snake();
snake.showsnake();
mytime = setInterval("snake.movesnake()",200);
document.body.onkeydown = function(evt){
if(evt.keyCode == 38){
snake.direct = "up";
}
if(evt.keyCode == 40){
snake.direct = "down";
}
if(evt.keyCode == 37){
snake.direct = "left";
}
if(evt.keyCode == 39){
snake.direct = "right";
}
}
}
</script>
</head>
<body>
</body>
</html>
<head>
<script type="text/javascript">
var map = null;
//面板
function Map(){
this.width = 800;
this.height = 400;
this.color = 'lightblue';
this.showmap = function(){
var ban = document.createElement('div');
ban.style.width = this.width+'px';
ban.style.height = this.height+'px';
ban.style.position ='absolute';
ban.style.left =0;
ban.style.top = 0;
ban.style.backgroundColor = this.color;
document.body.appendChild(ban);
}
}
//食物
function Food(){
this.width = 20;
this.color = "red";
this.shiwu = null;
this.showfood = function(){
if(this.shiwu == null){
this.shiwu = document.createElement('div');
this.shiwu.style.width = this.width+'px';
this.shiwu.style.height = this.width+'px';
this.shiwu.style.position ='absolute';
}
this.shiwux = Math.floor(Math.random()*40);
this.shiwuy = Math.floor(Math.random()*20);
this.shiwu.style.left = this.shiwux*this.width+"px";
this.shiwu.style.top = this.shiwuy*this.width+"px";
this.shiwu.style.backgroundColor = this.color;
document.body.appendChild(this.shiwu);
}
}
//绘制小蛇
function Snake(){
this.direct = "right";
this.range = 20;
this.color = "green";
this.duans = [[0,1,this.color,null],[1,1,this.color,null],[2,1,this.color,null],[3,1,'red',null]];
//显示小蛇
this.showsnake = function(){
for(var i in this.duans){
if(this.duans[i][3]==undefined){
this.duans[i][3] = document.createElement('div');
this.duans[i][3].style.width = this.range+'px';
this.duans[i][3].style.height = this.range+'px';
this.duans[i][3].style.backgroundColor = this.duans[i][2];
}
this.duans[i][3].style.position = 'absolute';
this.duans[i][3].style.left =this.range*this.duans[i][0]+'px';
this.duans[i][3].style.top = this.range*this.duans[i][1]+'px';
document.body.appendChild(this.duans[i][3]);
}
}
//移动小蛇
this.movesnake = function(){
for(i=0;i<this.duans.length-1;i++){
this.duans[i][0] = this.duans[i+1][0];
this.duans[i][1] = this.duans[i+1][1];
}
if(this.direct=='right')
this.duans[this.duans.length-1][0] +=1;
if(this.direct=='left')
this.duans[this.duans.length-1][0] -=1;
if(this.direct=='up')
this.duans[this.duans.length-1][1] -=1;
if(this.direct=='down')
this.duans[this.duans.length-1][1] +=1;
//判断蛇是否吃到食物
if( this.duans[this.duans.length-1][0]==food.shiwux&&
this.duans[this.duans.length-1][1]==food.shiwuy){
var newduan = [this.duans[0][0], this.duans[0][1],this.color,null];
this.duans.unshift(newduan);
food.showfood();
}
//判断是否出界 0,0 40,0 0,20 40,20
if( this.duans[this.duans.length-1][0]<0
||this.duans[this.duans.length-1][0]>39||
this.duans[this.duans.length-1][1]<0||
this.duans[this.duans.length-1][1]>19){
alert('game over');
clearInterval(mytime);
return false;
}
//判断是否吃到自己
for(var i=0;i<this.duans.length-1;i++){
if( this.duans[i][0] == this.duans[this.duans.length-1][0]&&
this.duans[i][1] == this.duans[this.duans.length-1][1]){
alert('game over by yourself');
clearInterval(mytime);
return false;
}
}
this.showsnake();
}
}
window.onload = function(){
map = new Map();
map.showmap();
food = new Food();
food.showfood();
snake = new Snake();
snake.showsnake();
mytime = setInterval("snake.movesnake()",200);
document.body.onkeydown = function(evt){
if(evt.keyCode == 38){
snake.direct = "up";
}
if(evt.keyCode == 40){
snake.direct = "down";
}
if(evt.keyCode == 37){
snake.direct = "left";
}
if(evt.keyCode == 39){
snake.direct = "right";
}
}
}
</script>
</head>
<body>
</body>
</html>
0 0
- js实现贪吃蛇小游戏
- JS实现贪吃蛇小游戏
- js实现贪吃蛇小游戏
- js实现的贪吃蛇的小游戏
- 原生JS实现传统贪吃蛇小游戏
- JS实现简单的贪吃蛇小游戏
- JS-贪吃蛇小游戏
- js贪吃蛇小游戏
- 贪吃蛇(js小游戏)
- js小游戏----贪吃蛇
- js jq 贪吃蛇小游戏
- JavaScript 实现各种小游戏源码 !js贪吃蛇源码
- 【05】20行js代码实现的贪吃蛇小游戏
- Java ,实现贪吃蛇小游戏
- JavaScript, 实现贪吃蛇小游戏
- java实现贪吃蛇小游戏
- 贪吃蛇小游戏 C++实现
- 《Java小游戏实现》:贪吃蛇
- Linux系统的进程通常有以下几种状态
- 数据库课程设计--“茶咖啡”销售管理系统总结
- 音视频处理->音频格式简介
- 【转】c#中ListView控件加入ComboBox
- libcurl删除HTTP头部方法
- js实现贪吃蛇小游戏
- 设计模式--迭代器与组合模式Iterator&Component
- linux 设备驱动之IOCTRL
- ubuntu 12.10搭建samba,共享windows资源
- 几种经典的网络服务器架构模型的分析与比较
- ArcGIS下栅格裁剪的几种方法和批量处理方法
- 通过ambari来搭建hadoop集群(1)
- 数字特征值
- 三种XML解析方法总结