tankwar java_TankWar 单机(JAVA版) 版本0.3 画出坦克
其实就是通过自定义的panel 重写里面的paint方法 使用Graphics类画一个圆
然后把自定的panel添加到窗口中
由于想到tank不能只画一个 所以我们封装一个tank类 里面有一个draw方法 用来画 坦克
通过实例化tank 调用draw方法就能实现画tank了
具体代码如下:
Tank类
package tankWar;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
public class Tank {
//坦克x坐标
private int x;
//坦克y坐标
private int y;
//坦克的宽
private int width;
//坦克的高
private int height;
public Tank() {
super();
// TODO Auto-generated constructor stub
}
public Tank(int x, int y, int width, int height) {
super();
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
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 int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public void draw(Graphics g){
Graphics2D g2=(Graphics2D) g;
//画一个圆
Ellipse2D e2=new Ellipse2D.Double(x, y, width, height);
//颜色为红色
g2.setColor(Color.RED);
//填充
g2.fill(e2);
//画一条线 通过坦克的坐标计算炮杆的坐标
//默认坦克朝上
Line2D l2=new Line2D.Double(x+width/2, y+height/2, x+width/2, y+height/2-40);
g2.setColor(Color.BLACK);
g2.setStroke(new BasicStroke(3));
g2.draw(l2);
}
}
TankClient类
package tankWar;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TankClient extends JFrame{
//窗口的高度
public static int screenHeight=600;
//窗口的宽度
public static int screenWidth=800;
//创建一个窗口
public TankClient(){
//添加自定义的panel
add(new TankClientPanel());
setTitle("坦克大战");
//窗口的大小
setSize(screenWidth, screenHeight);
//设置窗口的显示位置在屏幕中央
setLocationRelativeTo(null);
//关闭窗口的事件管理
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//不允许窗口的大小改动
setResizable(false);
setVisible(true);
}
public static void main(String[] args) {
//启动窗口
new TankClient();
}
//自定义Jpanel
public class TankClientPanel extends JPanel{
//重写patit方法
@Override
public void paint(Graphics g) {
//实例化坦克
Tank tank=new Tank(50,50,50,50);
//画坦克
tank.draw(g);
}
}
}
运行结果:
tankwar java_TankWar 单机(JAVA版) 版本0.3 画出坦克相关推荐
- java 坦克大战画坦克_【JAVA语言程序设计基础篇】--JAVA实现坦克大战游戏--画出坦克(二)...
坦克类: //坦克父类 可以设置坦克出现位置(x,y) class Tank { int x = 0; int y = 0; public Tank (int x,int y){ this.x = x ...
- 如何从0开始画出一张优秀的架构图
你好,我是悟空. 最近在画项目的技术架构图,找到了一些不错的模板,分享给大家~ 画图工具:ProcessOn. 画图技巧:如何从0开始画出一张优秀的架构图 文末再送 5 本书给大家! 业务架构图 定义 ...
- java 坦克重叠_【Java】我所知道坦克大战(单机版)之画出坦克的实心圆、让圆动起来、双缓冲解决闪烁问题...
28640发布于 今天 02:47 本篇文章目的 画出坦克的实心圆 让坦克圆动起来 双缓冲解决闪烁问题 一.画出代表坦克的实心圆 我们需要画出一个圆,那么可以使用fillOval方法 fillOval ...
- 我的世界麦块的java_麦块游戏盒子App手机mod版下载-麦块盒子我的世界Java版v9.0.2 最新版-007游戏网...
麦块盒子我的世界Java版,这是一款十分受欢迎的手游盒子,专为我的世界而打造.这里汇集了海量的游戏内容,游戏社区.游戏礼包.游戏攻略.游戏评测.游戏修改mod等等一应俱全,让你的游戏更加丰富,享体验到 ...
- 用Java输出兔子图形,如何画出可爱的兔子?那你看看这个!
兔子怎么画?虽然想画一个心爱的兔子,兔子,从心爱的表面来看,是很有人气的动物,可是可能有些人对于动物的身体不太清楚.想画一个心爱的兔子的人也不在少数.那么这次我们就来一同看看一只心爱的兔子是怎么诞生的 ...
- java月亮升起与落下动画设计_Java版1.0.0/开发版本
本页面列出了Java版1.0.0的开发版本. Beta 1.9-pre1 Beta 1.9 Prerelease是Java版1.0.0的首个预发布版. 它被称为"丢失的更新", 新 ...
- java版坦克大战_JAVA实现坦克大战1.0版本
1 packagetankGame;2 import java.awt.*;3 import javax.swing.*;4 import java.awt.event.*;5 import java ...
- java画球_我的世界java版指令画球教程
我的世界java版如何用指令画球?许多玩家可能还不太清楚吧,下面就为大家带来最新版本下指令画球的详细教程,供各位玩家们参考. 指令画球教程 第一丶 局部坐标 世界坐标被视作绝对坐标.很多命令可以使用波 ...
- java版我的世界有溺尸_我的世界溺尸怎么生成
溺尸是海洋版本中的全新海底敌对生物,它会生成在所有的海洋生物群系中,属于僵尸的变种,普通的僵尸在水中超过半分钟就会转化成溺尸.溺尸也是全新武器三叉戟的唯一来源,携带三叉戟生成的溺尸会使用三叉戟的近战和 ...
最新文章
- python主成分分析相关系数_python如何进行主成分分析
- 自然语言对话:未来发展的机遇在哪里?
- c语言如何实现阶乘,求10000的阶乘(c语言代码实现)
- mysql最多多少个索引_漫画 | 一台Linux服务器最多能支撑多少个TCP连接?
- poj3421 X-factor Chains
- 为什么会有那么多人放弃编程?
- 需求文档:没有标准,只有沟通
- 用反射方法使用户控件动态调用父页面的方法
- 【机房收费系统】---上下机
- 做食品检测1年,自学软件测试,最后心惊胆战转行
- 脚本——web_custom_request函数详解
- scrapy操作指南
- wordpress上传图片按时间重命名
- flv 视频 文件 下载
- 我对国内两大购书站点的感受(dearbook和china-pub)
- 揭秘让您正确识别和处理恶意邮件的五种方法
- 8款精致的纯CSS3按钮特效
- 使用 Spring Boot websocket 写简单网页聊天室
- Java 随机点名器
- MFC中使用sqlite3操作数据库 创建,插入数据,查询数据
热门文章
- ASP.NET Core 中的依赖注入
- Microsoft Build 2018 直播来啦!
- ABP从入门到精通(5):.扩展国际化语言资源
- 从头编写 asp.net core 2.0 web api 基础框架 (1)
- Orleans例子再进一步
- 2016.NET Core相关内容回顾
- 【送书活动】机器学习项目开发实战
- java jtable defaulttablemodel_java – JTable和DefaultTableModel
- python 读取json为list及向json文件追加数据
- 【经典回放】多种语言系列数据结构线性表之一:顺序表