gpt4 book ai didi

xna - 如何在 XNA/Monogame 中标记要删除的实例

转载 作者:太空宇宙 更新时间:2023-11-03 18:32:18 26 4
gpt4 key购买 nike

在我制作的塔防游戏中,当我的敌人死亡时,我想让他们死,对吗?所以,我需要删除它们。我是从 C++ 过来的,您可以使用 delete MyInstance; 删除类的实例,但这在 C# 中不起作用。我知道 C# 中有一个垃圾收集器可以为您删除内容,但是,您如何标记要删除的实例?谢谢你!!!

最佳答案

我的建议是不要删除它们。虽然您有垃圾收集器可以帮忙,但从性能的角度来看,不使用它通常是您的最佳选择。

想想你可能拥有的最大敌人数量。

创建 Enemy 对象的循环缓冲区:本质上是一个 Enemy 对象数组和最后一个指针。

为每个敌人添加一个“IsActive”标志。

当你想创建一个新的敌人时,从最后一个指针开始向前遍历循环缓冲区,直到找到一个 IsActive 标志设置为 false 的 Enemy。将最后一个指针设置为该敌人,使该敌人成为您关心的类型,并将其 IsActive 标志设置为 true。

当敌人死亡时,将其 IsActive 标志设置为 false。

在 Update 和 Draw 循环中,您只需遍历缓冲区,然后作用于或绘制每个 IsActive 设置为 true 的 Enemy。

关于xna - 如何在 XNA/Monogame 中标记要删除的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20533855/

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