初试javascript :贪吃蛇啊[2]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 wujevons 的 blog

}

function snake_reload()
{
 for (var i = 0 ; i<this.items.length ; i ++)
 {
  var curnode = this.items[i];
  obj = document.all("main" + curnode.x + "#" + curnode.y);
  obj.style.background = color[1];
 }
}

function snake_destroy()
{
 for (var i = 0 ; i<this.items.length ; i ++)
 {
  var curnode = this.items[i];
  obj = document.all("main" + curnode.x + "#" + curnode.y);
  obj.style.background = color[0];
 }
}

function snake_clear()
{
 this.destroy();
 this.items = new array();
}

snake.prototype.eat = snake_eat;
snake.prototype.move = snake_move;
snake.prototype.reload = snake_reload;
snake.prototype.destroy = snake_destroy;
snake.prototype.clear = snake_clear;

//蛇体节点
function snakenode(x,y)
{
 this.id = 0;//编号
 this.x = x;//坐标x
 this.y = y;//坐标y
 this.color = "#000000";
}

function snakenode_setc(d_color)
{
 this.color = d_color;
}

function snakenode_move(dx,dy)
{
 this.x = dx;
 this.y = dy;
}

snakenode.prototype.setcolor = snakenode_setc ;
snakenode.prototype.move = snakenode_move ;

//========================================
//程序界面
//初始化主控制区
function drawarea(row,col,name){
 var s = "<table border=1 cellspacing=0 cellpadding=1 bgcolor=" + color[0] + ">";
 for(var i=0; i<row; i++){
  s = s + "<tr height=" + size + ">";
  for(var j=0; j<col; j++){
   var id = name + i + "#" + j;
   s = s + "<td width=" + size + " class=btnup id=" + id;
   s = s + " style=\"background:" + color[0] + "\">&nbsp;</td>"
  }
  s = s + "</tr>";
 }
 s = s + "</table>";
 return s;
}

//初始化
function init(){
 mainarea.innerhtml = drawarea(row,col,'main');
}

//==================================
//程序控制区,用来接收输入、定义控制方法
//控制输入
function keydown(){
 switch(event.keycode)
 {
  case 37:
   if (curr_direction[0] != -1)
   {
   move_direction[0] = -1;
   move_direction[1] = 0;
   }
   break;
  case 38:
   if (curr_direction[1] != -1)
   {
   move_direction[0] = 0;
   move_direction[1] = -1;
   }
   break;
  case 39:
   if (curr_direction[0] != 1)
   {
   move_direction[0] = 1;
   move_direction[1] = 0;
   }
   break;
  case 40:
   if (curr_direction[1] != 1)
   {
   move_direction[0] = 0;
   move_direction[1] = 1;
   }
   break;
 }
}

function begin()
{
 end = false;
 paused = false;
 s.clear();
 for (var i = 8; i >=0 ; i--)
 {
  sn = new snakenode(0,i);
  s.eat(sn);
 }
 n.eated();
 n.create();
 move_direction[0] = 1;
 move_direction[1] = 0;
 curr_direction[1] = s.items[1].x - s.items[0].x;
 curr_direction[0] = s.items[1].y - s.items[0].y;
 start();
}

//启动开关
function start()
{
 if (end)
 {
  s.reload();
  alert("挂了!");
  return;
 }
 window.clearinterval(timerid);
 timerid = window.setinterval("run()",delay);
}

//运行主体
var d = true;
function run(){
 if(paused) return;
 if(true){
  window.clearinterval(timerid);
  s.move(move_direction);
  curr_direction[1] = s.items[1].x - s.items[0].x;
  curr_direction[0] = s.items[1].y - s.items[0].y;
  start();
 }
 }

//暂停开关
function pause()
{
 if (paused)
 {
  paused = false;
  if (!end)
  {
   run();
  }
 }
 else
 {
  paused = true;
 }
}

//结束
function over()
{
 end = true;
}

本文关键:javascript 贪吃蛇 游戏
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top