2012-11-25 254 views
0

我在我的XNA C#Windows遊戲中保存遊戲數據,並且遇到了一個問題(由於缺乏知識)。更改結構中的值?

我創建我的公共類的Game1外的結構如下

public struct SaveGameData 
    { 
     public string PlayerName; 
     public int Score; 
    } 

然後main方法裏面(公共類的Game1)

SaveGameData saveGameData = new SaveGameData() 
     { 
      PlayerName = "Jimmy", 
      Score = 100, 
     }; 

我不能在其他地方訪問PlayerName我代碼,所以我想我可以將PlayerName =設置爲另一個變量,如「字符串名稱」。 但我得到以下錯誤消息

一個字段初始不能引用非靜態字段,方法或屬性

有動態地改變這些值的方法嗎?或者我是否以錯誤的方式去做?

編輯

所提供的信息缺乏好遺憾。

我聲明兩個變量

public String name; 
public int score; //small s 

然後我試圖設置PlayerName =名稱得分=得分但我得到上述錯誤。

通過採取Wimmel的建議,我將字段更改爲靜態,並且擺脫了錯誤。

但是,在我的更新方法中,當我更新分數值... Score的值也沒有更新。在我輸出的.txt文件中,分數值是「分數」的初始值

+2

這是*真的*代碼?因爲它應該工作..錯誤消息的「非靜態*字段」部分似乎不合適。 – 2012-11-25 19:59:14

+0

同意@pst在VS 2010中試用它時工作得很好。 – Andy

+0

如果我設置PlayerName =「jimmy」或任何其他文本,但如果我將它設置爲一個String變量,它會給我錯誤。 – UserBruiser

回答

4

您正試圖訪問SaveGameData,這只是該類型。您必須更改saveGameData或將這些字段設爲靜態。

+0

雖然在那裏嘗試?我看到一個'new' .. – 2012-11-25 20:00:14

+0

@pst,代碼是missng,但是當你嘗試訪問'SaveGameData.PlayerName'時,你會得到那個錯誤信息。 – wimh

+0

自然;我只是試圖清除這個答案 - 但這個有用的信息作爲一個例子。 – 2012-11-25 20:04:38