我在做一个游戏的原型。我目前正在制作效果,但更一般的是动画。
目前,我有一个列表,其中添加了新产生的效果。然后在游戏循环的更新部分,我会让每个效果根据时间改变它们的状态。当效果结束时,我让它触发一个内部标志。在更新所有效果后,我再次检查列表中是否有任何已完成的效果,并将它们从列表中删除。
它起作用了。我觉得可以做得更好,但我不知道怎么做。我的意思是,它经过两次列表来更新和清除已完成的效果。如果我使用一个数组,删除将在那里留下一个洞,我将不得不跟踪漏洞在哪里,这似乎更复杂。我觉得链表最好?有什么建议吗?
发布于 2015-11-23 03:08:12
考虑到你在问题中所提出的内容,很难说(没有提到语言或性能要求)。
数组可以工作。正如您注意到的,您可以删除已完成的效果,然后添加处理漏洞的逻辑。如果它是一个对象数组,只需将该元素设置为NULL就足够了。如果您愿意的话,也可以在对象中有一个字段isFinished。
根据您的语言和性能要求,您可能可以使用类似于C‘S的List<>。Java有一个类似的类。您可以将它看作一个支持删除不带漏洞的数组。
链接列表没有什么问题,但我有点担心过早优化的可能性。
https://softwareengineering.stackexchange.com/questions/303305
复制相似问题