我在XNA编写游戏,我有两个子类(角色和敌人)。我想创建一种方法,通过角色攻击分数降低敌人的健康状况。我该怎么办?我遇到让课程互相交流的问题。
是否可以执行类似于构造函数的操作,我可以输入类似的内容:
Attack(player.attack, enemy.health);
如果玩家的攻击分数为2,且敌人的生命值为10,则在调用该方法后,敌人将获得8点生命值。
答案 0 :(得分:1)
可能更清楚地使Attack
成为敌人的一种方法,然后你可以使用你的玩家Attack
敌人:
enemy.Attack(player);
敌人的Attack
方法中的代码将查看player.attack属性,并相应地减少其自身的健康状况。
答案 1 :(得分:1)
您可能会考虑将其拆分一点。例如:
// Method on each player, which in turn calls the method below.
// This is called when myPlayer attacks enemyPlayer.
myPlayer.AttackPlayer(enemyPlayer);
// Called from within the AttackPlayer method which was called on
// myPlayer. The parameter <damage> is a (private?) property in myPlayer:
enemyPlayer.ReceiveAttack(damage);
这应该能够清楚地说明发生了什么,让你以灵活的方式处理不同的方面,以防你以后想要扩展它。
示例:接受攻击的玩家在不同情况下的行为可能会有所不同(例如,如果他有装甲等,受到的伤害会减少),而攻击者不必考虑这一点。