Java Swing游戏开发学习27

内容来自RyiSnow视频讲解

这一节讲的是Equip & Use Items装备与使用物品。

前言

实现捡起物品、切换武器装备、使用物品。

修复问题

当光标在物品栏(背包)中移动到没有物品的格子中的时候,使装备介绍子窗口不可见,反之可见。如下图所示,在UI类中,将绘制子窗口方法移动到if判断中即可。

捡起物品

捡起地图上的物品,放入背包中。

java 复制代码
public class Player {
......
	public void pickUpObject(int i) {
        if (i != 999) {
			String text;
            if (inventory.size() < maxInventorySize) {
                inventory.add(gp.obj[i]);
                gp.playSE(1);
                text = "Got a " + gp.obj[i].name + "!";
            } else {
                text = "You can not carry any more!";
            }
            gp.ui.addMessage(text);
            gp.obj[i] = null;
        }
    }
    ......
}

为当前装备增加高亮效果

其实就是在绘制装备前,绘制了一个格子大小的背景。

切换当前的装备

这里增加了一个斧子,一个盾牌,这样就有了2件武器、2个盾牌,用于切换装备测试。

从图上可以看出,切换武器后,攻击值、防御值都会发生变化,当前的武器或盾牌也会变化。

增加挥舞斧子动作

新增了8个图片,实现4个方向挥舞斧子动画。

使用物品

增加了一个红色药水,使用后可恢复5点生命值。

java 复制代码
public class OBJ_Potion_Red extends Entity {
	int value = 5;
......
    @Override
    public void use(Entity entity) {
        gp.gameState = gp.dialogueState;
        gp.ui.currentDialogue = "You drink the " + name + "!\n"
                + "Your life has been recovered by " + value + ".";
        entity.life += value;
        if (gp.player.life > gp.player.maxLife) {
            gp.player.life = gp.player.maxLife;
        }
        gp.playSE(2);
    }
}

下图中,玩家血量只剩下一个心,饮用红色药水后,增加了2个心的血量。

总结

到现在为止实现了捡起物品、切换武器装备、使用物品。

自己将背包窗口修改了一下,增加了网格线,去掉了圆角。效果还有待改进。

代码

参考第6篇文章最后gitee仓库链接,可以使用git clone命令clone一下或直接下载获得完整项目

相关推荐
我命由我12345几秒前
SSL 协议(HTTPS 协议的关键)
网络·经验分享·笔记·学习·https·ssl·学习方法
wrx繁星点点2 分钟前
事务的四大特性(ACID)
java·开发语言·数据库
IT学长编程10 分钟前
计算机毕业设计 Java酷听音乐系统的设计与实现 Java实战项目 附源码+文档+视频讲解
java·spring boot·毕业设计·课程设计·毕业论文·音乐系统·计算机毕业设计选题
IT学长编程27 分钟前
计算机毕业设计 基于协同过滤算法的个性化音乐推荐系统的设计与实现 Java实战项目 附源码+文档+视频讲解
java·spring boot·毕业设计·毕业论文·协同过滤算法·计算机毕业设计选题·个性化音乐推荐系统
小小娥子32 分钟前
Redis的基础认识与在ubuntu上的安装教程
java·数据库·redis·缓存
几何心凉39 分钟前
已解决:org.springframework.web.HttpMediaTypeNotAcceptableException
java
丶Darling.40 分钟前
代码随想录 | Day26 | 二叉树:二叉搜索树中的插入操作&&删除二叉搜索树中的节点&&修剪二叉搜索树
开发语言·数据结构·c++·笔记·学习·算法
华农第一蒟蒻42 分钟前
Java中JWT(JSON Web Token)的运用
java·前端·spring boot·json·token
两点王爷43 分钟前
使用WebClient 快速发起请求(不使用WebClientUtils工具类)
java·网络
计算机学姐1 小时前
基于SpringBoot+Vue的高校运动会管理系统
java·vue.js·spring boot·后端·mysql·intellij-idea·mybatis