2012-08-31 98 views
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; 
    } 
+0

你是在谈一些调用函数中的t.currentMap或entity.currentMap吗?如果你在这个方法上设置了一个断点,你是说'map'不是null并且t.currentMap仍然是空的? – itsme86

回答

1

首先,你说map绝对不为空时,正在通过。因此,有两种可能性。

其中一个:该设置为currentMap不起作用。或者发布与setter关联的代码,或者通过步入其中来确保其实际存储值。确保在下一行,值仍然存在。

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

+0

currentMap是字段,而不是属性。也许有一个PostInitialize错误,这将解决为什么子弹bug如此之多的神秘。 – RisaI

+0

调试器是你的朋友.. –