我正在用Java编写一个命令行游戏,以帮助更好地学习GUI等等,我遇到了一个问题。在游戏中我希望能够瞄准另一个玩家。我正在制作一个名为attack()的方法。如果我想攻击一个玩家,我会怎么做,以便我可以使用攻击(bar)作为一个功能。我不知道如何引用参数中的对象或在不同类中创建的对象。我需要做的代码基本上是这样的:假设我的名字是Player foo,我正在攻击玩家吧。每个玩家都有2个实例变量,Player.playerHealth
和Player.playerDamage
(他们所做的伤害)。我需要这样做:
attack(playerTarget) {
target = playerTarget
target.playerHealth = target.playerHealth - foo.playerDamage;
}
所以基本上我需要它来设置失去健康的玩家等于参数中的名字。我怎么能实现这个目标?
答案 0 :(得分:0)
我认为你正在寻找这样的东西:
public class Player {
private int playerHealth;
private int playerDamage;
public void attack(Player target) {
target.playerHealth -= this.playerDamage;
}
public static void main(String[] args) {
Player foo = new Player();
foo.playerHealth = 10;
foo.playerDamage = 1;
Player bar = new Player();
bar.playerHealth = 10;
bar.playerDamage = 1;
foo.attack(bar);
foo.attack(bar);
System.out.println(bar.playerHealth); // will print 8
}
}
攻击方法是在Player类上声明的,因此只要你有一个对玩家的引用'foo',你就可以通过以下方式调用攻击:foo.attack(otherPlayer)
。