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

  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绘图坐标体系(二)的更多相关文章

  1. java基础 绘图技术.坦克大战 之java绘图坐标体系(一)

    坐标体系介绍 下图说明了java坐标体系.坐标原点位于左上角,以像素为单位,像素是计算机屏幕上最小的显示单位.在java的坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素:第二个 ...

  2. Java基础系列1:深入理解Java数据类型

    Java基础系列1:深入理解Java数据类型 当初学习计算机的时候,教科书中对程序的定义是:程序=数据结构+算法,Java基础系列第一篇就聊聊Java中的数据类型. 本篇聊Java数据类型主要包括四个 ...

  3. Java基础-类加载机制与自定义类Java类加载器(ClassLoader)

    Java基础-类加载机制与自定义类Java类加载器(ClassLoader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于类加载器的概念和分类我就不再废话了,因为我在之前的笔 ...

  4. java基础思维导图,让java不再难懂

    java基础思维导图,让java不再难懂 原文链接  https://my.oschina.net/u/3080373/blog/873056 最近看了一些文章的思维导图,发现思维导图真是个强大的工具 ...

  5. JAVA课程设计(坦克大战)

    2019-01-16 坦克大战游戏背景: 1. 需求分析 1.1环境要求 操作系统:Windows 7(SP1)以上 JAVA虚拟机:JDK1.8以上 开发环境:Eclipse(4.5以上) 1.2角 ...

  6. java制作简单的坦克大战

    坦克大战是我们小时候玩红白机时代的经典游戏,看到有不少小伙伴都使用各种语言实现了一下,手痒痒,也使用java做的一个比较简单的坦克大战,主要面向于学过Java的人群,与学了一段时间的人,有利于面向对象 ...

  7. Java基础扫盲系列(三)— Java内省技术

    前言 Java内省技术属于Java基础体系的的一部分,但是很多人都不甚了解.笔者也是在学习Spring源码的过程中遇到该技术模块的.为了完善技术体系,本文将全面的学习该技术.在提到Java内省技术,就 ...

  8. Java基础学习总结(83)——Java泛型总结

    1. 什么是泛型? 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数化类型时指定的类型 ...

  9. Java基础学习总结(80)——Java性能优化详解

    让Java应用程序运行是一回事,但让他们跑得快就是另外一回事了.在面对对象的环境中,性能问题就像来势凶猛的野兽.但JVM的复杂性将性能调整的复杂程度增加了一个级别.这里Refcard涵盖了JVM in ...

随机推荐

  1. codevs 1080 线段树点修改

    先来介绍一下线段树. 线段树是一个把线段,或者说一个区间储存在二叉树中.如图所示的就是一棵线段树,它维护一个区间的和. 蓝色数字的是线段树的节点在数组中的位置,它表示的区间已经在图上标出,它的值就是这 ...

  2. Weekly Traning Farm 16

    先安利一下这套比赛,大概是doreamon搞的,每周五晚上有一场,虽然没人做题目质量挺高的 http://codeforces.com/group/gRkn7bDfsN/contests(报名前要先报 ...

  3. 监控系统Opserver的配置调试

    Stack Exchange开源其监控系统Opserver有一段时间了.之前在项目中用过他们的MiniProfile来分析页面执行效率和帮助新人了解项目,当他们开源了其监控系统的时候正好部门也在关注监 ...

  4. [LeetCode] Best Time to Buy and Sell Stock III 买股票的最佳时间之三

    Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...

  5. 一文弄懂神经网络中的反向传播法——BackPropagation

    最近在看深度学习的东西,一开始看的吴恩达的UFLDL教程,有中文版就直接看了,后来发现有些地方总是不是很明确,又去看英文版,然后又找了些资料看,才发现,中文版的译者在翻译的时候会对省略的公式推导过程进 ...

  6. curl的登录总结

    demo1 <?php $curl=curl_init('http://www.baidu.com'); curl_exec($curl); curl_close($curl); ?> c ...

  7. Appium简单测试用例

    工程目录如下: 封装初始化androiddriver 方法 import org.openqa.selenium.remote.DesiredCapabilities; import java.io. ...

  8. PHP函数

    2017.1.5 stream_get_contents函数:读取数据流中的剩余数据到字符串 [功能说明] 该函数同file_get_COntents()函数的作用相同,只不过该函数用于读取已经打开的 ...

  9. [转]别再抱怨了,国内这么多优秀的Android资源你都知道吗?

    因为一些大家都知道的原因,android很多官方出品的优秀开发资源在国内无法访问. 国内的同行们对此也做出了很多努力,有很多朋友通过各种手段把很多优秀的资源搬运到了国内,为国内android开发者提供 ...

  10. C++ 自由存储区是否等价于堆?

    "free store" VS "heap" 当我问你C++的内存布局时,你大概会回答: "在C++中,内存区分为5个区,分别是堆.栈.自由存储区.全 ...