2014-03-29 52 views
1

我正在嘗試爲大學創建一個小行星遊戲。但是,當我調試遊戲時,我總是收到一個錯誤,指出'對象引用未設置爲對象的實例。C#XNA:未將對象引用設置爲對象的實例

的代碼行調試器狀態錯誤所在,就是:

Asteroidorigin.X = texture.Width/2; 
Asteroidorigin.Y = texture.Height/2; 

Asteroidorigin和紋理的定義是這樣的:

public Vector2 texture; 
public Vector2 Asteroidorigin; 

上面的代碼看起來一切ok對我來說,所以在這個問題上的任何幫助將不勝感激, 乾杯

+2

大概質地爲空 – BlackBear

+0

我猜測上面的代碼應該是: public Texture2D texture; //不是一個Vector2 – fooser

+0

是啊,多數民衆贊成什麼是應該讀 – user3158314

回答

1

從您發佈的代碼,質地尚未加載。此代碼需要在LoadContent()將該紋理分配給來自內容管道的資產後運行。

如果代碼重複運行,如果它不運行第一次它被稱爲不要緊,你可以只添加一個空檢查:

if (texture != null) 
{ 
    Asteroidorigin.X = texture.Width/2; 
    Asteroidorigin.Y = texture.Height/2; 
} 
+0

的asteroidorigin代碼是位於下方在我的紋理加載 – user3158314

+0

然後執行空校驗應該是足夠了(因爲更新被稱爲LoadContent方法的更新方法中每時每刻)。只要確保任何依賴於這些屬性的東西都在空檢查中。如果它是* always * null,那麼確保LoadContent中的加載沒有失敗。 – BradleyDotNET

+0

不再有錯誤。歡呼 – user3158314

相關問題