2012-08-31 5 views
0

편집 : 발견. 플레이어 생성자에 오류가있었습니다. 게임 시스템을 변경 했으므로 entites 및 tiles에 ID를 사용합니다. 그 전에 나는 모든 것을 새롭게해야만했다. 인벤토리 초기화를 생성자에서 PostInitialize()로 바꾸는 것을 잊어 버렸습니다. 그래서 그것은 존재하지 않는 엔티티의 Null 월드를 사용했습니다. 다들 감사 해요.필드 값을 변경할 수 없습니다


문제가 있습니다. 나는 XNA 게임을하고 있는데 엔티티의 맵을 바꿔서 물건을 할 수 있지만 문제가 생겼다. 메서드가 null이 아닌 인수 맵을받습니다. entity.currentMap을 인수로 설정했지만 currentMap은 여전히 ​​null입니다. 먼저

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이 여전히 null이라는 말입니까? – itsme86

답변

1

, 당신은 map확실히이 null이 전달 될 때 것을 말한다. 따라서, 두 가지 가능성이 있습니다.

하나 :currentMap에 대한 세터가 작동하지 않습니다. setter와 관련된 코드를 게시하거나 실제로 setter로 들어가서 값을 올바르게 저장하고 있는지 확인하십시오. 바로 다음 줄에 값이 있는지 확인하십시오.

2 : 값이 메소드의 다른 곳에서 손실됩니다. LoadTextures 및/또는 PostInitializecurrentMap 변수를 삭제하지 않았습니까?

+0

currentMap은 필드가 아닌 속성입니다. PostInitialize 오류가있을 수 있습니다. 미스터리가 총알 버그를 그렇게 많이 왜 풀 수 있는지 알려줍니다. – RisaI

+0

디버거는 친구입니다. –

관련 문제