标签:
功能:在坐标系上绘制坦克
1 /* 2 * 功能:坦克游戏的1.0 3 * 1. 画出坦克 4 * */ 5 package com.tank; 6 7 import javax.swing.*; 8 9 import java.awt.*; 10 public class demo2 extends JFrame{ 11 12 /** 13 * @param args 14 */ 15 Mypanel mp =null; 16 public static void main(String[] args) { 17 // TODO Auto-generated method stub 18 demo2 demo2= new demo2(); 19 } 20 21 //构造函数 22 public demo2() 23 { 24 mp =new Mypanel(); 25 26 this.add(mp); 27 this.setSize(400,300); 28 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 29 this.setVisible(true); 30 } 31 32 } 33 34 //我的面板 35 class Mypanel extends JPanel 36 { 37 //定义一个我的坦克 38 Hero hero =null; 39 40 //构造函数 41 public Mypanel() 42 { 43 hero = new Hero(10,10); 44 } 45 46 //重写paint函数 47 public void paint(Graphics g) 48 { 49 super.paint(g); 50 g.fillRect(0,0,400, 300); 51 this.drawTank(hero.getX(), hero.getY(), g, 0, 1); 52 } 53 //画出坦克的函数 54 public void drawTank(int x,int y,Graphics g,int direct,int type) 55 { 56 //判断是什么类型的坦克(敌人的还是自己的) 57 switch(type) 58 { 59 case 0: 60 g.setColor(Color.cyan); 61 break; 62 case 1: 63 g.setColor(Color.yellow); 64 break; 65 } 66 67 //判断方向 68 switch(direct) 69 { 70 //向上 71 case 0: 72 73 //画出我的坦克(到时再封装成一个函数 ) 74 //1. 画出左边的矩形 75 g.fill3DRect(x, y, 5,30,false); 76 //2. 画出右边矩形 77 g.fill3DRect(x+15, y, 5, 30,false); 78 //3. 画出中间矩形 79 g.fill3DRect(x+5, y+5, 10, 20,false); 80 //4. 画出圆形 81 g.fillOval(x+5, y+10, 10, 10); 82 //5. 画出线 83 g.drawLine(x+10, y+15, x+10, y); 84 break; 85 } 86 } 87 } 88 89 //坦克类 90 class Tank 91 { 92 //表示坦克的横坐标 93 int x=0; 94 95 //坦克的从纵坐标 96 int y=0; 97 public int getX() { 98 return x; 99 } 100 public void setX(int x) { 101 this.x = x; 102 } 103 public int getY() { 104 return y; 105 } 106 public void setY(int y) { 107 this.y = y; 108 } 109 public Tank(int x,int y) 110 { 111 this.x=x; 112 this.y=y; 113 } 114 } 115 116 //我的坦克 117 class Hero extends Tank 118 { 119 public Hero(int x,int y) 120 { 121 super(x, y); 122 } 123 }
java基础 绘图技术.坦克大战 之java绘图坐标体系(二)
标签:
原文地址:http://www.cnblogs.com/lt132024/p/5965600.html