Java Swing游戏开发学习17

内容来自RyiSnow视频讲解

这一节讲的是Event(Damage Pit, Healing Pool, Teleport Tile),直译:事件(伤害深坑(类似陷阱吧),治愈池,传送瓦片)

事件(陷阱【掉进去回掉血】,治愈池【可以回血】,传送瓦片【类似回城符什么的,在野外使用直接回特定地图或某个位置】

前言

(1)在事件中实现了碰到陷阱,会受伤,掉血;

(2)到水池那里,按Enter键会被治愈,回血;

(3)传送瓦片,可以从一个地点,立即到达另一个地点,有点像传送门。

添加了一个EventHandler类,类中添加了一个触发事件的矩形对象和一个检测事件的方法,举例说明了上述各种事件的实现方式。

遇到陷阱

每次遇到陷阱,生命值减1

java 复制代码
public void damagePit(int gameState) {
	gp.gameState = gameState;
    gp.ui.currentDialogue = "You fall into a pit!";
    gp.player.life -= 1;
}

为了方便演示,地图做了一个临时修改。

池子治愈

在水池旁边,player方向向上,按回车恢复生命,加满血。

java 复制代码
public void healingPool(int gameState) {
    if (gp.keyH.enterPressed) {
        gp.gameState = gameState;
        gp.ui.currentDialogue = "You drink the water.\nYour life has been recovered.";
        gp.player.life = gp.player.maxLife;
    }
}

这里只是举了2个例子,你可以根据需要安排自己想要的事件,比如当走到一个特定的tile瓦片,你可以远程传送到另一个位置,或一些类似的事情。

传送瓦片

当人物走到特定的瓦片,瞬间传送到另一个位置。作者代码中使用的是陷阱位置的瓦片,可以自己修改其他位置,比如我改为了走到水池左下角,方向向左,会触发传送。

java 复制代码
public void teleport(int gameState) {
	gp.gameState = gameState;
    gp.ui.currentDialogue = "Teleport!";
    gp.player.worldX = gp.tileSize * 37;
    gp.player.worldY = gp.tileSize * 10;
}

代码

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

相关推荐
泡茶喝茶写代码3 分钟前
A股量化数据工程:从 REST 接口到策略信号(第 1 篇):指数列表与实时行情接入
java·python·股票数据api·股票数据·股票数据api接口·股票api数据接口·股票量化数据接口
Sarvartha8 分钟前
接口基础知识
java·开发语言
小淮AI18 分钟前
在职医生备考主治医师,我的资料搭配思路
学习
不才不才不不才37 分钟前
Spring 源码系列(29): 20 道高频面试题源码级解析合集
java·后端·spring
索隆zoro41 分钟前
Army 的可插拔架构:army-jdbc 与方言模块
java·后端
小蒜学长1 小时前
校园社团招新网站的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·校园社团招新网站
AOI小白新手上路1 小时前
韦东山《ARM 架构与编程》基于I.MX6ULL 3-1 硬件知识_LED 原理图 · 学习笔记
arm开发·学习·架构
Dovis(誓平步青云)2 小时前
多个链接不等于多份证据,新闻核验看板怎样合并来源
java·服务器·前端·javascript·人工智能·pdf·电脑
旺仔Sec2 小时前
2026年江西省职业院校技能大赛(中职组)应用软件系统开发赛项竞赛样题
java·应用软件系统开发
传奇开心果编程2 小时前
【现代声明式UI学与练】第1课 从命令式UI到声明式UI
学习·flutter·ui·swiftui·react·android jetpack