基于JAVA的葫芦娃游戏

使用说明

使用mvn clean test package编译,生成的jar包为./target/HuLuBattle.jar

战场大小为16*12的棋盘,战斗(录像)开始前/结束后按F切换怪物阵型,L选择录像文件(.mylog)并自动播放,空格开始战斗,在每次战斗结束后会在当前目录下生成上一次战斗的录像文件(default.mylog)

可在./src/main/resources/character.properties配置文件中修改角色属性, 如使用jar包运行程序则每次修改配置文件需重新生成一次jar包,因为配置文件位于资源文件夹中。

目前可供修改的属性有:

子弹类型

血量

攻击力

攻击频率

攻击范围

移动速度

以下是各个属性的详细说明

2.1 子弹类型

水平子弹:射程无限,当前行存在敌人就有概率发射

直线子弹:射程由属性中的攻击范围决定,会捕获以当前角色为中心,边长为2*range正方形区域内的所有敌人,并向所有敌人的方向发射一枚子弹,子弹射出后不再改变方向

追踪子弹:捕获敌人与直线子弹相同,但是子弹会自动追踪目标,直到触碰到目标或其他敌人为止

治疗子弹:为爷爷和蛇精专属(当然你也可以给别的角色装备),和追踪子弹类似,但目标是友方且有治愈效果

18702784-c292e58506622072.png

点击此处下载文档和源码

好的,我可以为您提供一个简单的Java线程实现葫芦娃打妖怪的示例。 首先,我们需要创建两个类:`Huluwa` 和 `Monster` ,它们分别表示葫芦娃和妖怪。这两个类都有一个`fight`方法,分别表示打斗。 ```java public class Huluwa { public void fight() { System.out.println("葫芦娃打妖怪!"); } } public class Monster { public void fight() { System.out.println("妖怪打葫芦娃!"); } } ``` 然后,我们创建一个 `BattleField`类,表示战场。在 `BattleField` 类中,我们可以创建多个葫芦娃和妖怪对象,并将它们放在一个数组中。然后,我们创建两个线程分别代表葫芦娃和妖怪,让它们不断地交替执行 `fight` 方法。 ```java public class BattleField { public static void main(String[] args) { Huluwa[] huluwas = new Huluwa[3]; Monster[] monsters = new Monster[3]; for (int i = 0; i < huluwas.length; i++) { huluwas[i] = new Huluwa(); monsters[i] = new Monster(); } Thread huluwaThread = new Thread(() -> { while (true) { for (Huluwa huluwa : huluwas) { huluwa.fight(); try { Thread.sleep(1000); // 线程睡眠 1s } catch (InterruptedException e) { e.printStackTrace(); } } } }); Thread monsterThread = new Thread(() -> { while (true) { for (Monster monster : monsters) { monster.fight(); try { Thread.sleep(1000); // 线程睡眠 1s } catch (InterruptedException e) { e.printStackTrace(); } } } }); huluwaThread.start(); monsterThread.start(); } } ``` 在上面的代码中,我们使用了 Lambda 表达式来创建线程。在 `Huluwa` 线程中,我们使用一个 `for` 循环遍历所有的葫芦娃,然后依次调用它们的 `fight` 方法,并在每次调用后使线程睡眠 1 秒钟。在 `Monster` 线程中,我们使用同样的方式遍历所有的妖怪,并依次调用它们的 `fight` 方法。 最后,我们启动这两个线程,并让它们不断地交替执行 `fight` 方法,从而模拟葫芦娃和妖怪的战斗过程。 需要注意的是,上面的代码中只是一个简单的示例,它并没有考虑到多线程可能出现的问题,比如数据竞争、死锁等等,实际应用中还需要更加仔细地设计和实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值