Java Swing游戏开发学习16

内容来自RyiSnow视频讲解

这一节讲的是Player Life玩家生命,就是游戏中人物的血条(health bar),这里作者用的是若干个心❤来表示的血量。

前言

作者的做法是,生命值为1表示半颗红心,2表示一个完整的红心,空心表示没有血量。0就全是空心。6就是3个红心,3的话一个半红心,以此类推。这里使用了3张图片,红心、一半红心、空心。

实现

这个血量指示放在了窗口的左上角。

  • 画最大血量

最大血量除2得到空心数量,然后循环画对应数量的空心即可。

java 复制代码
// draw blank heart, max life
int i = 0;
while (i < gp.player.maxLife / 2) {
    g2.drawImage(heart_blank, x, y, null);
    i++;
    x += gp.tileSize;
}
  • 画当前的血量
    根据当前血量,先画半颗心,然后循环变量加1判断是否需要画全颗心;
java 复制代码
// draw current life
while (i < gp.player.life) {
    // 这个循环的处理逻辑非常巧妙。
    g2.drawImage(heart_half, x, y, null);
    i++;
    if (i < gp.player.life) {
        g2.drawImage(heart_full, x, y, null);
    }
    i++;
    x += gp.tileSize;
}

这个循环的处理逻辑非常巧妙。

效果

生命值(血量)=6

生命值(血量)=3

代码

参考第6篇文章最后,可以使用git clone或直接下载获得完整项目

相关推荐
阿拉金alakin3 分钟前
深入理解 Java 线程池:核心参数、工作流程与常用创建方式
java·开发语言·java-ee
星幻元宇VR8 分钟前
VR流动行走平台|让虚拟体验真正“走起来”
科技·学习·安全·vr·虚拟现实
小江的记录本10 分钟前
【网络安全】《网络安全三大加密算法结构化知识体系》
java·前端·后端·python·安全·spring·web安全
赵侃侃爱分享17 分钟前
学习网络安全后首先应该做这些工作
学习·安全·web安全
希望永不加班19 分钟前
SpringBoot 中 AOP 实现多数据源切换
java·数据库·spring boot·后端·spring
像一只黄油飞23 分钟前
第二章-02-注释
笔记·python·学习·零基础
广师大-Wzx26 分钟前
JavaWeb:前端部分
java·前端·javascript·css·vue.js·前端框架·html
生万千欢喜心27 分钟前
Linux 安装金蝶天燕中间件 AAS-V9.0.zip
java·linux
xiebingsuccess33 分钟前
ThingsPanel IoT Platform 学习笔记
笔记·学习
海兰42 分钟前
【第2篇-续】从零开始helloworld使用openAI通用模型的完整实现示例附源代码
java·人工智能·spring boot·alibaba·spring ai