首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过一个对象的变量更改另一个对象的变量

通过一个对象的变量更改另一个对象的变量
EN

Stack Overflow用户
提问于 2014-04-08 14:25:21
回答 2查看 32关注 0票数 0

我正在用XNA编写一个游戏,我有两个子类(Character和Enemy)。我想创造一种方法,通过角色攻击得分来降低敌人的生命值。我该怎么做呢?我在让类之间进行交互时遇到了问题。

是否有可能做一些类似于构造函数的事情,在其中我可以键入以下内容:

代码语言:javascript
复制
Attack(player.attack, enemy.health);

如果玩家的攻击分数是2,而敌人的生命值是10,那么在调用该方法后,敌人将剩下8点生命值。

EN

回答 2

Stack Overflow用户

发布于 2014-04-08 14:31:11

Attack成为敌人类的方法可能更简单,然后你就可以用你的播放器Attack敌人了:

代码语言:javascript
复制
enemy.Attack(player);

敌人的Attack方法中的代码将查看player.attack属性,并相应地减少自身的健康。

票数 1
EN

Stack Overflow用户

发布于 2014-04-08 14:35:34

你可能会考虑把它分成两部分。示例:

代码语言:javascript
复制
// 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); 

这应该会很清楚发生了什么,并让您以灵活的方式处理不同的方面,以防您稍后可能想要扩展这一点。

例子:受到攻击的玩家在不同的情况下可能会有不同的表现(例如。如果他有装甲,受到的伤害更少),而攻击者不必考虑到这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22929165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档