import javax.swing.*; import java.awt.*; import java.awt.event.*; /* *一.做一个2D的地图程序 * 1.做个12x16矩阵方格 * 2.每个方格的长度和宽度为40像素 * 3.可以选择每个方块 * 4.根据1是墙0是路排列方块 */ public class MapTest1 extends JApplet implements Runnable,MouseListener,MouseMotionListener { int AppletHeight,AppletWidth,mouseX,mouseY; Image OffScreen; Graphics drawOffScreen; Thread tt; int a1 = 40, map1[][]={ //1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 {1,1,1,1,1,1,1,1,1,1, 1, 1, 1, 1, 1, 1},//1 {1,0,0,0,0,0,0,0,0,0, 0, 0, 0, 0, 0, 0},//2 {1,0,0,0,1,0,0,0,0,0, 0, 0, 0, 1, 0, 0},//3 {1,0,0,0,0,0,0,1,0,0, 0, 0, 0, 0, 0, 0},//4 {1,0,0,0,0,0,0,0,0,1, 0, 0, 0, 0, 0, 0},//5 {1,0,0,0,1,0,0,1,0,0, 1, 0, 0, 0, 0, 0},//6 {1,0,0,0,0,0,0,0,0,0, 0, 0, 1, 0, 1, 0},//7 {1,0,0,0,0,0,0,1,0,0, 0, 0, 0, 0, 0, 0},//8 {1,0,0,1,0,0,0,0,0,0, 0, 1, 0, 0, 0, 0},//9 {1,0,1,0,0,0,0,0,1,0, 0, 0, 0, 0, 0, 0},//10 {1,0,0,0,0,0,0,0,0,0, 0, 0, 0, 0, 0, 0},//11 {1,1,1,1,1,1,1,1,1,1, 1, 1, 1, 1, 1, 1}//12 }; public void init() { addMouseListener(this); addMouseMotionListener(this); resize(640,480); AppletHeight = getHeight(); AppletWidth = getWidth(); OffScreen = createImage(AppletWidth,AppletHeight); drawOffScreen = OffScreen.getGraphics(); System.out.println(map1.length);//12 System.out.println(map1[0].length);//16 } public void paint(Graphics g) { drawOffScreen.clearRect(0,0,this.getWidth(),this.getHeight()); for(int i1 = 0 ;i1<map1[0].length;i1++) { for(int i2 = 0;i2<map1.length;i2++) { switch(map1[i2][i1]) { case 0: drawOffScreen.setColor(Color.red); drawOffScreen.fillOval(i1*a1,i2*a1,a1,a1); break; case 1: drawOffScreen.setColor(Color.blue); drawOffScreen.fillOval(i1*a1,i2*a1,a1,a1); break; case 2: drawOffScreen.setColor(Color.black); drawOffScreen.fillOval(i1*a1,i2*a1,a1,a1); break; } } } g.drawImage(OffScreen,0,0,this); } public void start() { tt = new Thread(this); tt.start(); } public void stop(){} public void update(Graphics g){paint(g);} public void run() { while(tt !=null) { repaint(); try{ Thread.sleep(33); }catch(Exception e){} } } public void mouseExited(MouseEvent e){} public void mouseClicked(MouseEvent e) { mouseX = e.getX()/40; mouseY = e.getY()/40; System.out.println("mouseClicked "+e.getX()); System.out.println("mouseClicked "+e.getY()); System.out.println(mouseX); System.out.println(mouseY); map1[mouseY][mouseX] = 2; } public void mouseEntered(MouseEvent e){} public void mousePressed(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mouseMoved(MouseEvent e){} public void mouseDragged(MouseEvent e){} }