⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sprite.java

📁 迷宫问题即如何走出一个迷宫的问题。此程序可以完成此功能
💻 JAVA
字号:
// 程序:2D迷宫角色类
// 范例文件:Sprite.java

class Sprite {
   int LcX, LcY;  // 角色的位置
   int SizeW, SizeH;  // 图片大小
   int maze[][];  // 迷宫数组
   int indexI = 1, indexJ = 1;  // 角色在数组中的索引位置

   // 初始角色状态
   public Sprite(int x, int y, int w, int h, int[][] m)
   {
      LcX = x;
      LcY = y;
      SizeW = w;
      SizeH = h;
      maze = m;
   }

   public void moveUp()  // 角色向上
   {
      if(isPassed(indexI, indexJ,'U')) // 判断是否可向上移动
      {
         LcY -= SizeW;  // 移动角色Y坐标
         indexI--;      // 改变角色(纵向)索引位置
      }
   }

   public void moveDown()
   {
      if(isPassed(indexI, indexJ,'D'))
      {
         LcY += SizeW;
         indexI++;
      }
   }

   public void moveRight()
   {
      if(isPassed(indexI, indexJ,'R'))
      {
         LcX += SizeW;
         indexJ++;
      }
   }

   public void moveLeft()
   {
      if(isPassed(indexI, indexJ,'L'))
      {
         LcX -= SizeW;
         indexJ--;
      }
   }

   // 判断角色是否可以移动
   private boolean isPassed(int i, int j, char d)
   {
       boolean pass = false;  
       switch (d)
       {
           case 'U':
              if(maze[i-1][j] == 0)  // 上方元素值是否为0
                  pass = true;  
              break;
           case 'D':
             if(maze[i+1][j] == 0)  // 下方元素值是否为0
                  pass = true;
              break;
           case 'L':
             if(maze[i][j-1] == 0)  // 左方元素值是否为0
                  pass = true;
             break;
           case 'R':
             if(maze[i][j+1] == 0) // 右方元素值是否为0
                  pass = true;
              break;
       }

       return pass;
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -