这是啥?
这是一个使用 Java 编写的屑文字游戏,名为《鬼畜大冒险》,英文名为 KichikuAdventure。
这是迄今为止本人所做的最大的 Java 文字游戏项目。
编译时的注意事项
由于本游戏包含 BGM,其格式为 mid 文件,因此在导入游戏源代码时,mid 文件可能不会被一起导入,因此您可能需要手动复制目录下的两个 mid 文件进去,否则可能无法播放 BGM。
由于本游戏内含特殊字符,因此需要您调整 IDE 的编码为 UTF-8,否则可能会导致乱码。
系统逻辑
手动创建玩家对象(玩家自行输入姓名和性别,其余属性自动生成,详见对应类的文件)-> 自动创建定义地图的 x,y 变量 -> 自动创建 5 个 NPC、4个怪物、5 个武器 -> 创建一个新线程并载入两个 BGM 并依次循环播放 -> 开始监测用户的输入(在地图上的移动)
游戏提供了名为 printDialogue 的方法,内含游戏剧情,拥有多个 if 判断语句块。玩家每次移动都会调用此方法,若玩家移动造成 x,y 变量与 NPC 或 怪物 所在的坐标相同,则打印其战斗或者聊天的剧情,反之打印什么都没发生。
当游戏通关时,有 3 种选择:1.在地图上漫无目的地游荡 2.输入 exit 退出游戏(可以随时在移动时输入以退出游戏) 3.探索地图范围之外(四个方向有不同的彩蛋)
战斗系统流程
判断玩家选择的是战斗还是逃跑 -> 若战斗则进行以下流程,否则逃跑(执行 x++,然后跳出判断)-> 判断玩家选择的武器是否存在 -> 存在则开始战斗,否则逃跑 -> 由玩家先进行攻击,系统随机生成一个数,若能被 2 整除,则怪物抵挡成功,攻击的数值将会减去其防御数值,怪物对玩家的攻击以此类推 -> 战斗成功则进行结算,失败则退出游戏。
欲剖析其实现原理,详见对应代码。
本游戏所有的 NPC
导航天使①~④:为玩家提供新手上路的武器——匕首,并交代部分游戏内容。坐标分别在 (1,0) (-1,0) (0,1) (0,-1),因此玩家无论第一步往哪走都会遇到它们其中一个。
作者:坐标 (4,2),是通关的“钥匙”,在玩家打败除 BOSS 外的所有怪物时在地图上出现,作用是给玩家提供“谜题”,与玩家交互,监测玩家输入的内容是否为正确答案,如果是则使 BOSS 的攻击力降为0,反之游戏强制结束。如果玩家没有在打 BOSS 之前解开作者的“谜题”,而选择直接打 BOSS,则会被 BOSS 秒杀。
本游戏所有的怪物
蔡徐坤:坐标 (4,2)
郭老师:坐标 (3,-3)
冬泳怪鸽:坐标 (-4,-4)
影流之主:BOSS,坐标 (-5,5)
以上怪物的属性详见对应类文件。
本游戏所有的武器
匕首:一把普普通通的匕首,可以让攻击力提升 10!
篮球:看起来是一个普通的篮球,但是可以让攻击力提升 30!
迷吼tiao:外观酷似猕猴桃的炸弹,可以多次使用,可以让攻击力提升 50!
张牙舞爪大宝剑:外形像狼牙的大宝剑!可以让攻击力提升 123!
爷爷的拐杖:爷爷祖传下来的拐杖!可以击退敌人 ? 米,可以让攻击力提升 188!
地图越界的事件
往东越界时,当 x>8 时,自动设定坐标为 (-5,3) 并打印一句话 "你掉入了神秘法阵,传送到了地图的 (??,??)...无法获取...“
往南越界时,当 y
往西越界时,当 x
往北越界时,当 y>8 时,则执行 EasterEgg 这个类里面的主方法(彩蛋),彩蛋是另一款由本人制作的小游戏,逻辑很简单,就是层层 if 嵌套,只要一步错了,就死亡,最终结局也是死亡。