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

📄 maze25dblock.java

📁 用JAVA进行游戏设计的图书 可以了解JAVA的运行状态 和编写游戏的特点
💻 JAVA
字号:
// 程序:加入障碍物的斜角地图
// 范例文件:Maze25DBlock.java

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class Maze25DBlock extends Applet
{
   int          AppletWidth, AppletHeight,floorW,floorH,
                blockW,blockH,charW,key,sx;
   Image        floor,block,OffScreen,character2;
   Thread       newThread;
   Graphics     drawOffScreen; 
   MediaTracker MT;
   int[][] maze = {{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                   {0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1},
                   {1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,1},
                   {1,0,0,0,1,1,1,1,1,0,1,0,1,1,0,1},
                   {1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1},
                   {1,1,0,1,0,1,1,0,1,1,0,0,1,0,0,1},
                   {1,1,0,0,0,0,1,0,0,1,0,0,0,0,1,1},
                   {1,1,0,0,2,0,1,1,1,1,0,1,0,0,1,1},
                   {1,1,1,1,1,0,0,0,1,1,0,0,0,0,1,1},
                   {1,0,0,0,0,0,0,0,1,0,0,1,1,0,1,1},
                   {1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,1},
                   {1,1,1,0,0,0,1,1,1,0,1,0,1,1,1,1},
                   {1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1},
                   {1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1},
                   {1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0},
                   {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};

   public void init()
   {
      setBackground(Color.white);  
  
      AppletWidth  = getSize().width; 
      AppletHeight = getSize().height;

      MT           = new MediaTracker(this);
      floor = getImage(getDocumentBase(),"Images/floor.gif");         
      block = getImage(getDocumentBase(),"Images/block3.gif");        
      character2 = getImage(getDocumentBase(),"Images/character2.gif");          
      MT.addImage(floor,0);
      MT.addImage(block,0);
      MT.addImage(character2,0);
     
      try
      {
         showStatus("图像载入中(Loading Images)...");
         MT.waitForAll();
      }
      catch(InterruptedException E){ } 
      
      OffScreen     = createImage(AppletWidth,AppletHeight);
      drawOffScreen = OffScreen.getGraphics();

      floorW = floor.getWidth(this);
      floorH = floor.getHeight(this);
      blockW = block.getWidth(this);
      blockH = block.getHeight(this);
      charW = character2.getHeight(this);
 
      sx = 0;
   }

   public void paint(Graphics g)
   {
      drawOffScreen.clearRect(0,0,AppletWidth,AppletHeight);

       int X,Y;

       for(int i=1; i < 16; i++)
          for(int j=1; j < 16; j++)
          {
             X = rotateX(j,i);
             Y = rotateY(j,i);
             drawOffScreen.drawImage(floor,X,Y,X+floorW,Y+floorH,0,0,floorW,floorH,this);
          }

       for(int i=0; i < 16; i++)
          for(int j=0; j < 16; j++)
          {
             if(maze[i][j] != 0) {
                X = rotateX(j,i);
                Y = rotateY(j,i);
                drawOffScreen.drawImage(block,X,Y+4,X+blockW,
                    Y+blockH+4,0,0,blockW,blockH,this);
             }
          }        

      g.drawImage(OffScreen,0,0,this);
   }

   private int rotateX(int j, int i)
   {
      int x;
      x = (j-i)*floorW + 500;
      return (int) (x*Math.cos(60*Math.PI/180));
   }
   
   private int rotateY(int j, int i)
   {
      int x, y;
      x = j*floorW + 150;
      y = -i*floorH;
      y = (int )-(y*Math.cos(-15*Math.PI/180) + 
          x*Math.sin(60*Math.PI/180)*Math.sin(-15*Math.PI/180));
      y = y - i * floorH/2;
      return y ;
   }
}

⌨️ 快捷键说明

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