WEB开发网
开发学院手机开发Android 开发 android平台俄罗斯方块游戏完整代码 阅读

android平台俄罗斯方块游戏完整代码

 2012-12-02 14:31:58 来源:WEB开发网   
核心提示: public void move() // 移动时,必须对屏幕数组和颜色数组校正 {for(int i=0;i<4;i++){ for(int j=0;j<4;j++) {if(statefang.state[k][i][j] != 0){ m_screen[i+of_x][j+of_y] = 1; m_
 public void move() // 移动时,必须对屏幕数组和颜色数组校正
 {
 for(int i=0;i<4;i++)
 {
  for(int j=0;j<4;j++)
  {
  if(statefang.state[k][i][j] != 0)
  {
   m_screen[i+of_x][j+of_y] = 1;
   m_color[i+of_x][j+of_y] = state;
  }
  }
 }
 }
 
 public boolean moveRightOn()  // 能否右移动
 {
 buttonRight = true;
 for(int i=0;i<4;i++)
 {
  for(int j =0;j<4;j++)
  {
  if(statefang.state[k][i][j] != 0)
   {
   while(j<3 && statefang.state[k][i][j+1] != 0)
   j++;
   if(!isSpace(of_x+i,of_y+j+1))
   return false;
   }
  }
 }
 return true;
 }
 public boolean moveLeftOn()  // 能否左移动
 {
 buttonLeft = true;
 
 for(int i=0;i<4;i++)
 {
  for(int j=0;j<4;j++)
  {
  if(statefang.state[k][i][j] != 0)
   {
     if(!isSpace(of_x+i,of_y+j-1))
      return false;
     else
      break;
   }
  }
 }
 return true;
 }
 public int fastDown(int log)  //能否快速下落,此函数有两种状态 一种是返回阴影的值 另一种是下落所学值
 {
 int a[] = {100,100,100,100};
 int n=0,s = 0,m = 0;
 for(int i=0;i<4;i++)
 {
  for(int j =0;j<4;j++)
  {
  if(statefang.state[k][i][j] != 0)
   {
   m = i;
   while(m<3 && statefang.state[k][m+1][j] != 0)
   m++;
   if(isSpace(of_x+m+1,of_y+j))
   {
   n = 1;
   while(isSpace(of_x+m+(++n),of_y+j));
     a[s++] = n-1;
    }
   }
  }
 }
 switch(log) // 一个是下方透明方块的距离值,一个是实际下落方块的距离
 {
 case 1:of_x_x = of_x+min(min(a[0],a[1]),min(a[2],a[3]));return of_x_x;
 case 2:s = of_x;
 of_x += min(min(a[0],a[1]),min(a[2],a[3]));break;
 }
   
   return s;
 }
 public int min(int a,int b)
 {
 if(a>=b)
  return b;
 else
  return a;
 }
 public void cleanstate(int x,int y)  // 清楚函数状态
 {
 for(int i=0;i<4;i++)
 {
  for(int j=0;j<4;j++)
  {
  if(statefang.state[k][i][j] != 0)
  {
   m_screen[x+i][y+j] = 0;
   m_color[x+i][y+j] = -1;
  }
  }
 }
 }
 
 public void Court(int grade)    // 计分
 {
 line += grade;
 switch(grade)
 {
 case 1:gradeCourt+=100;break;
 case 2:gradeCourt+=300;break;
 case 3:gradeCourt+=500;break;
 case 4:gradeCourt+=800;break;
 }
 }
 public boolean GameOver()  // 游戏结束
 {
 for(int i=0;i<of_Height;i++)
 {
  if(m_screen[4][i] != 0)
  return true;
 }
 return false;
 } 
  public void Right()    // 右移函数
  {
   cleanstate(of_x,of_y);
 of_y++; 
   move();
  }
  public void Left()    // 左移函数
  {
   cleanstate(of_x,of_y);
   of_y--;
 move();
  }
  public void Down()    // 下落函数
  {
   cleanstate(of_x,of_y);
 of_x++;
 move();
  }
  public void FastDown() // 快速下落函数
  {
   add_dis_y = 5;
  cleanstate(fastDown(2),of_y);
 move();
  } 
  public void rate()   // 旋转函数
  {
   cleanstate(of_x,of_y);
 move();
  }
  public void NotDown()  // 方块下落到地步 对屏幕数组进行一系列的处理 
  {
    of_x_x = 0;
    colorstate(of_x, of_y,state);    // 保存颜色值
  Court(cleanFullLine());  // 消行计分 
  }
  public void newState()
  {
    k = a;    // 交换方块值
  state = statenext;  //交换颜色值
  a = Math.abs(m_Random.nextInt()%28); // 产生方块值
  statenext = Math.abs(m_Random.nextInt()%7); // 产生颜色值
  of_y = 3; // 重置下落位置
  of_x = 0;
  }
}

上一页  5 6 7 8 9 10 11 12 13  下一页

Tags:android 平台 俄罗斯

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接