内容来自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或直接下载获得完整项目