运行结果:

为了在坦克上方画血条 。血条首先要有坐标x,y  宽和高width和height

血量的多少life也要有。

所以新建类Life要有这些参数

Life类如下:

package tankWar;

import java.awt.Color;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.Rectangle;

import java.awt.geom.Rectangle2D;

public class Life {

private int x;

private int y;

private int width=40;

private int height=10;

private int life;

public Life() {

super();

// TODO Auto-generated constructor stub

}

public Life(int x, int y,int life) {

super();

this.x = x;

this.y = y;

this.life=life;

}

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 void draw(Graphics g){

Graphics2D g2=(Graphics2D) g;

//画外圈

Rectangle2D r2=new Rectangle2D.Double(x, y-height, width, height);

g2.setColor(Color.YELLOW);

g2.draw(r2);

//根据血量比例画血条

Rectangle2D r=new Rectangle2D.Double(x+1, y-height+1, width*((double)life/100)-1, height-1);

g2.setColor(Color.RED);

g2.fill(r);

}

}

起初调试发现,坦克被击中一下  血量就为0  后来想了想  life/100这里。因为life是整形,除以100保留整数为0.所以强转为double

最后在Tank类中画坦克的时候画血条即可。

private void drawEnemyTanks(Graphics g) {

// TODO Auto-generated method stub

// 画敌方坦克

for (Tank t : enemyTanks) {

if (t.isbLive()) {

//画坦克

t.draw(g);

//画血条

Life life=new Life(t.getX(), t.getY(), t.getLive());

life.draw(g);

} else {

// 坦克死亡 画爆炸

Bomb b = new Bomb(t.getX() - 50, t.getY() - 30);

b.draw(g);

enemyTanks.remove(t);

}

}

}因为我的坦克不在集合里面,自己写

// 画我的坦克

if (myTank.isbLive()) {

myTank.draw(g);

Life life=new Life(myTank.getX(), myTank.getY(), myTank.getLive());

life.draw(g);

} else {

// 游戏结束

isGameOn = false;

}

全部代码点击下载

java血条_TankWar 单机(JAVA版)版本2.3~版本2.4 为坦克画血条相关推荐

  1. TankWar 单机(JAVA版)版本2.3~版本2.4 为坦克画血条

    运行结果: 为了在坦克上方画血条 .血条首先要有坐标x,y  宽和高width和height 血量的多少life也要有. 所以新建类Life要有这些参数 Life类如下: package tankWa ...

  2. Oracle发布了Java SE支持路线图,Java 8 支持到2030年

    最近Oracle发布了Java SE支持路线图,以帮助开发者了解Java SE的维护和支持选项以及相关的时间表,以便可以为公司和个人使用Java SE做出最佳决策. 自2017年9月以来,Oracle ...

  3. 中间画一条短竖线_许愿孔明灯怎么画,简约好看的孔明灯简笔画教程

    日常许愿用的孔明灯简笔画如下,主要由直线和椭圆形构成.首先画一个椭圆形作为它的底部,然后在它的两端分别向上画一条线,接着线的一端继续画三条短直线,把整个轮廓描出来.然后在拐角处画上两竖线,让它有棱角更 ...

  4. 怎样在excel的一个单元格里画多条斜线再输入汉字

    怎样在excel的一个单元格里画多条斜线再输入汉字 怎样在excel的一个单元格里画多条斜线再输入汉字 - 百度文库 表格表头如何在Excel中画斜线含双斜线及添加文字 百度 excel折线图表的插入 ...

  5. 我的世界JAVA版编程语言_Java版版本记录/开发版本

    此页面并非官方版本记录或更新日志.官方日志请见Minecraft官网. 关于1.11及此前版本,请见Mojang官网. 关于Beta 1.8及此前版本,请见Notch的博客,Word of Notch ...

  6. mc用什么版本的java_MC版本Java版5大功能优势

    众所周知Java开发应用广泛,Java版本被很多人认为是最好的MC版本,MC版本Java版5大功能优势有什么呢?Java版开发优势:支持更多的模组.各种节日彩蛋.官方更高的重视性.游戏画面色彩更好.操 ...

  7. 基于Java+JFrame开发的单机版开心农场游戏源码,Java开发的单机电脑版开心农场游戏源代码

    单机版开心农场项目 介绍 使用 Java+JFrame 等相关知识开发一个单机电脑版的开心农场 软件架构 使用java中JFrame类相关知识进行可视化开发 使用javase阶段知识进行项目开发 本项 ...

  8. 我的世界1.18java,我的世界Java版1.16.5-rc1版本

    我的世界Java版1.16.5-rc1版本是一款非常不错的世界冒险和探索类的游戏.独特的沙盒玩法,可以更好的进行较量,解谜各种的地域,可以更好的完成作战,打破一场属于你的别样时刻,可以快速的进行提升, ...

  9. python 3.6.5 java jdk版本_eclipse开发者版本下载-eclipse ide for java developers最新版v3.6.0 pc版 - 极光下载站...

    eclipse ide for java developers最新版是一款对于Java开发人员创建Java EE和Web应用程序.安装上Eclipse IDE后不仅可以编写Java和C/C++等程序还 ...

最新文章

  1. 在疫情防控一线,技术能发挥什么作用?
  2. 【问题】最近遇到的不大不小的arduino库使用问题
  3. IOS使用通知回调方法
  4. 访问vue实例中的数据
  5. 迎来“进化”风口的电竞,能否在未来站上传统体育的肩膀?
  6. 等差素数列(素数筛暴力)
  7. python求和_Python程序查找特殊求和系列的解决方案
  8. Android应用程序中的多个Activity的显示创建和调用
  9. 特殊的forward_list操作
  10. RGB和CMYK的区别
  11. GCC Manual
  12. WPF 鼠标滚轮对图片的缩放
  13. norms matlab
  14. hbase snappy 安装_Hadoop HBase 配置 安装 Snappy 终极教程
  15. 修改contour的线条颜色
  16. 记录:起个撒名了, 就叫 《方向》 吧....
  17. OPCUA 设置登录用户名与密码
  18. app的崩溃率标准,优秀,合格,轻微隐患,严重隐患
  19. 疲劳检测,基于视频的疲劳检测、脱岗、打呵欠、闭眼、点头等检测
  20. smali打印callstack,Java打印callstack,JNI c++ 打印callstack

热门文章

  1. Minecraft 1.12.2模组开发(十二) 战利品 (loot)
  2. linux键盘修复,linux和macos_如何在macOS和Linux上修复Corsair鼠标和键盘问题
  3. Linux curses库
  4. Vue集成Bmap离线地图
  5. vue.config.js配置,webpack打包配置详解
  6. 深度学习中TOP-1 和TOP-5 分别表示什么意思?
  7. Python图像处理库Pillow(PIL)的简单使用
  8. java getmethod int_Method getMethod
  9. Unity3D 之 FX Maker
  10. html 引入 JQuery