gpt4 book ai didi

oop - 在编写游戏时,您是否应该制作对象/敌人/等。有唯一的身份证号码吗?

转载 作者:行者123 更新时间:2023-12-04 10:45:22 27 4
gpt4 key购买 nike

我最近遇到了一些问题,只是在我正在制作的游戏中传递对对象/敌人的引用,我想知道我是否使用了错误的方法。

我的主要问题是处理敌人和物体,而其他敌人或玩家可能仍然与它们有联系。

例如,如果你有一只兔子和一只狼,那么狼可能已经选择了兔子作为它的目标。我在做什么,是狼有一个GameObject Target = null;当它决定饿了时,目标就变成了兔子。
如果兔子随后死了,例如另一只狼杀死了它,则无法将其正确地从游戏中移除,因为这只狼仍然对其有引用。

此外,如果您使用解耦方法,兔子可能会被闪电击中,从而将其生命值降低到零以下。当它下一次更新自己时,它意识到它已经死了,并从游戏中删除了……但是没有办法更新所有对它感兴趣的东西。

如果你给每个敌人一个唯一的 ID,你可以简单地使用对它的引用,并使用一个中央查找类来处理它。如果怪物死了,查找类可以从它自己的索引中删除它,随后任何试图访问它的人都会被告知它已经死了,然后他们可以采取相应的行动。

对此有何想法?

最佳答案

一种可能的方法是让对象对它们正在跟踪的对象注册兴趣。因此被跟踪对象可以动态通知跟踪器状态变化。例如Wolf 向 Rabbit 注册(有一个相关方的列表),只要状态发生变化,Rabbit 就会通知这些方。

这种方法意味着每个对象都知道它的客户端,并且该状态直接与该对象相关联(而不是在某些第三方管理器类中)。

这本质上是 Observer pattern .

关于oop - 在编写游戏时,您是否应该制作对象/敌人/等。有唯一的身份证号码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2617096/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com