0

编辑:找到了。播放器构造函数中存在错误。我更改了我的游戏系统,所以它使用实体和图块的 ID。在此之前,我必须为所有事情做新的实例。我忘记将库存初始化从构造函数放到 PostInitialize() 所以它使用了不存在实体的空世界。谢谢你们。


我有个问题。我正在做一个 XNA 游戏,我需要更改实体的地图,以便它可以做到这一点,但我遇到了问题。方法接收不为空的参数映射,我将 entity.currentMap 设置为参数,但 currentMap 仍然为空。

public Entity getCopy(Vector2 po, Map.Map map)
    {
        Entity t = (Entity)this.MemberwiseClone();
        t.currentMap = map;
        t.Position = po;
        t.LoadTextures();
        t.PostInitialize();
        return t;
    }
4

1 回答 1

1

首先,您说传入map肯定不为null。因此,有两种可能性。

一: setter forcurrentMap不工作。要么发布与 setter 关联的代码,要么通过单步执行来确保它实际上正确地存储了值。确保在下一行,该值仍然存在。

二:该值在方法的其他地方丢失了。您确定LoadTextures和/或PostInitialize不清除currentMap变量吗?

于 2012-08-31T18:05:41.810 回答