用另一个变量改变对象变量

时间:2014-04-08 06:25:21

标签: c# xna

我在XNA编写游戏,我有两个子类(角色和敌人)。我想创建一种方法,通过角色攻击分数降低敌人的健康状况。我该怎么办?我遇到让课程互相交流的问题。

是否可以执行类似于构造函数的操作,我可以输入类似的内容:

Attack(player.attack, enemy.health);

如果玩家的攻击分数为2,且敌人的生命值为10,则在调用该方法后,敌人将获得8点生命值。

2 个答案:

答案 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); 

这应该能够清楚地说明发生了什么,让你以灵活的方式处理不同的方面,以防你以后想要扩展它。

示例:接受攻击的玩家在不同情况下的行为可能会有所不同(例如,如果他有装甲等,受到的伤害会减少),而攻击者不必考虑这一点。