java基础 绘图技术.坦克大战 之java绘图坐标体系(二)
功能:在坐标系上绘制坦克
- /*
- * 功能:坦克游戏的1.0
- * 1. 画出坦克
- * */
- package com.tank;
- import javax.swing.*;
- import java.awt.*;
- public class demo2 extends JFrame{
- /**
- * @param args
- */
- Mypanel mp =null;
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- demo2 demo2= new demo2();
- }
- //构造函数
- public demo2()
- {
- mp =new Mypanel();
- this.add(mp);
- this.setSize(400,300);
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- this.setVisible(true);
- }
- }
- //我的面板
- class Mypanel extends JPanel
- {
- //定义一个我的坦克
- Hero hero =null;
- //构造函数
- public Mypanel()
- {
- hero = new Hero(10,10);
- }
- //重写paint函数
- public void paint(Graphics g)
- {
- super.paint(g);
- g.fillRect(0,0,400, 300);
- this.drawTank(hero.getX(), hero.getY(), g, 0, 1);
- }
- //画出坦克的函数
- public void drawTank(int x,int y,Graphics g,int direct,int type)
- {
- //判断是什么类型的坦克(敌人的还是自己的)
- switch(type)
- {
- case 0:
- g.setColor(Color.cyan);
- break;
- case 1:
- g.setColor(Color.yellow);
- break;
- }
- //判断方向
- switch(direct)
- {
- //向上
- case 0:
- //画出我的坦克(到时再封装成一个函数 )
- //1. 画出左边的矩形
- g.fill3DRect(x, y, 5,30,false);
- //2. 画出右边矩形
- g.fill3DRect(x+15, y, 5, 30,false);
- //3. 画出中间矩形
- g.fill3DRect(x+5, y+5, 10, 20,false);
- //4. 画出圆形
- g.fillOval(x+5, y+10, 10, 10);
- //5. 画出线
- g.drawLine(x+10, y+15, x+10, y);
- break;
- }
- }
- }
- //坦克类
- class Tank
- {
- //表示坦克的横坐标
- int x=0;
- //坦克的从纵坐标
- int y=0;
- public int getX() {
- return x;
- }
- public void setX(int x) {
- this.x = x;
- }
- public int getY() {
- return y;
- }
- public void setY(int y) {
- this.y = y;
- }
- public Tank(int x,int y)
- {
- this.x=x;
- this.y=y;
- }
- }
- //我的坦克
- class Hero extends Tank
- {
- public Hero(int x,int y)
- {
- super(x, y);
- }
- }
java基础 绘图技术.坦克大战 之java绘图坐标体系(二)的更多相关文章
- java基础 绘图技术.坦克大战 之java绘图坐标体系(一)
坐标体系介绍 下图说明了java坐标体系.坐标原点位于左上角,以像素为单位,像素是计算机屏幕上最小的显示单位.在java的坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素:第二个 ...
- Java基础系列1:深入理解Java数据类型
Java基础系列1:深入理解Java数据类型 当初学习计算机的时候,教科书中对程序的定义是:程序=数据结构+算法,Java基础系列第一篇就聊聊Java中的数据类型. 本篇聊Java数据类型主要包括四个 ...
- Java基础-类加载机制与自定义类Java类加载器(ClassLoader)
Java基础-类加载机制与自定义类Java类加载器(ClassLoader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于类加载器的概念和分类我就不再废话了,因为我在之前的笔 ...
- java基础思维导图,让java不再难懂
java基础思维导图,让java不再难懂 原文链接 https://my.oschina.net/u/3080373/blog/873056 最近看了一些文章的思维导图,发现思维导图真是个强大的工具 ...
- JAVA课程设计(坦克大战)
2019-01-16 坦克大战游戏背景: 1. 需求分析 1.1环境要求 操作系统:Windows 7(SP1)以上 JAVA虚拟机:JDK1.8以上 开发环境:Eclipse(4.5以上) 1.2角 ...
- java制作简单的坦克大战
坦克大战是我们小时候玩红白机时代的经典游戏,看到有不少小伙伴都使用各种语言实现了一下,手痒痒,也使用java做的一个比较简单的坦克大战,主要面向于学过Java的人群,与学了一段时间的人,有利于面向对象 ...
- Java基础扫盲系列(三)— Java内省技术
前言 Java内省技术属于Java基础体系的的一部分,但是很多人都不甚了解.笔者也是在学习Spring源码的过程中遇到该技术模块的.为了完善技术体系,本文将全面的学习该技术.在提到Java内省技术,就 ...
- Java基础学习总结(83)——Java泛型总结
1. 什么是泛型? 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数化类型时指定的类型 ...
- Java基础学习总结(80)——Java性能优化详解
让Java应用程序运行是一回事,但让他们跑得快就是另外一回事了.在面对对象的环境中,性能问题就像来势凶猛的野兽.但JVM的复杂性将性能调整的复杂程度增加了一个级别.这里Refcard涵盖了JVM in ...
随机推荐
- codevs 1080 线段树点修改
先来介绍一下线段树. 线段树是一个把线段,或者说一个区间储存在二叉树中.如图所示的就是一棵线段树,它维护一个区间的和. 蓝色数字的是线段树的节点在数组中的位置,它表示的区间已经在图上标出,它的值就是这 ...
- Weekly Traning Farm 16
先安利一下这套比赛,大概是doreamon搞的,每周五晚上有一场,虽然没人做题目质量挺高的 http://codeforces.com/group/gRkn7bDfsN/contests(报名前要先报 ...
- 监控系统Opserver的配置调试
Stack Exchange开源其监控系统Opserver有一段时间了.之前在项目中用过他们的MiniProfile来分析页面执行效率和帮助新人了解项目,当他们开源了其监控系统的时候正好部门也在关注监 ...
- [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 ...
- 一文弄懂神经网络中的反向传播法——BackPropagation
最近在看深度学习的东西,一开始看的吴恩达的UFLDL教程,有中文版就直接看了,后来发现有些地方总是不是很明确,又去看英文版,然后又找了些资料看,才发现,中文版的译者在翻译的时候会对省略的公式推导过程进 ...
- curl的登录总结
demo1 <?php $curl=curl_init('http://www.baidu.com'); curl_exec($curl); curl_close($curl); ?> c ...
- Appium简单测试用例
工程目录如下: 封装初始化androiddriver 方法 import org.openqa.selenium.remote.DesiredCapabilities; import java.io. ...
- PHP函数
2017.1.5 stream_get_contents函数:读取数据流中的剩余数据到字符串 [功能说明] 该函数同file_get_COntents()函数的作用相同,只不过该函数用于读取已经打开的 ...
- [转]别再抱怨了,国内这么多优秀的Android资源你都知道吗?
因为一些大家都知道的原因,android很多官方出品的优秀开发资源在国内无法访问. 国内的同行们对此也做出了很多努力,有很多朋友通过各种手段把很多优秀的资源搬运到了国内,为国内android开发者提供 ...
- C++ 自由存储区是否等价于堆?
"free store" VS "heap" 当我问你C++的内存布局时,你大概会回答: "在C++中,内存区分为5个区,分别是堆.栈.自由存储区.全 ...