zoukankan      html  css  js  c++  java
  • java基础 绘图技术.坦克大战 之java绘图坐标体系(二)

        功能:在坐标系上绘制坦克

      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 }
  • 相关阅读:
    暴破助攻提权:ruadmin
    Python 绝技 —— TCP服务器与客户端
    代码审计| HDWiki 漏洞(一)
    Android逆向——smali复杂类解析
    从外部入侵公司:外部渗透测试
    大脸猫讲逆向之ARM汇编中PC寄存器详解
    Ms17-010进行WEB提权之实践下某培训靶机服务器
    XSS钓鱼某网约车后台一探究竟,乘客隐私暴露引发思考
    python爬虫实践教学
    Swif语法基础 要点归纳(一)
  • 原文地址:https://www.cnblogs.com/lt132024/p/5965600.html
Copyright © 2011-2022 走看看