我有一个java游戏,我已经做了一段时间了,现在我想改进我的调试系统。
此时,您按下Tilde键,然后键入一系列命令:疗愈、Ammo等。稍后,我为僵尸敌人添加了一个产卵命令。命令如下所示。~spawn.botbie.100(X).100(y-coord)。下面的代码运行,它将命令拆分为用于产卵的参数。
public void cheat(String code) {
String[] tokens = code.substring(1).toLowerCase().split("\\.");
switch (tokens[0]) {
case "spawn":
switch (tokens[1]) {
case "zombie":
game.cubes.add(new EnemyZombie(game, Integer
.parseInt(tokens[2]), Integer.parseInt(tokens[2])));
break;
case "health":
game.cubes.add(new PowerUpHealth(game, Integer
.parseInt(tokens[2]), Integer.parseInt(tokens[2])));
break;
}
break;
default:
break;
}
game.start();
}我如何实现类似于Java的语法?我希望能够键入zombie.spawn().setX(100).setY(100).setHealth(1)并传递这些参数。
发布于 2013-10-15 23:31:23
您只需在运行时使用反射调用一个方法。看起来是这样的:
this.getClass().getDeclaredMethod("myMethod").invoke(this);当然,您也可以用参数调用方法。但是,您需要为此编写一些解析器,还需要确保您正在按正确的顺序调用方法。要实现系统,它将能够继续执行上面所写的命令,大约需要30分钟。
发布于 2013-10-15 23:16:59
根据您的描述,这可能需要大量代码才能实现。
但是,如果您正在寻找一种方法将方法链接到一起,那么您可能需要查看构建器模式。查看这篇文章:
https://stackoverflow.com/questions/19392666
复制相似问题