我正在用XNA编写一个游戏,我有两个子类(Character和Enemy)。我想创造一种方法,通过角色攻击得分来降低敌人的生命值。我该怎么做呢?我在让类之间进行交互时遇到了问题。
是否有可能做一些类似于构造函数的事情,在其中我可以键入以下内容:
Attack(player.attack, enemy.health);如果玩家的攻击分数是2,而敌人的生命值是10,那么在调用该方法后,敌人将剩下8点生命值。
发布于 2014-04-08 14:31:11
让Attack成为敌人类的方法可能更简单,然后你就可以用你的播放器Attack敌人了:
enemy.Attack(player);敌人的Attack方法中的代码将查看player.attack属性,并相应地减少自身的健康。
发布于 2014-04-08 14:35:34
你可能会考虑把它分成两部分。示例:
// 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); 这应该会很清楚发生了什么,并让您以灵活的方式处理不同的方面,以防您稍后可能想要扩展这一点。
例子:受到攻击的玩家在不同的情况下可能会有不同的表现(例如。如果他有装甲,受到的伤害更少),而攻击者不必考虑到这一点。
https://stackoverflow.com/questions/22929165
复制相似问题