我已經用C#線這樣創建的對象的列表中給定的名稱:查詢對象,而
gameObjects.Add(new Object());
我也提出,在屏幕上打印包含gameObjects內的對象類型的列表功能。
for(int i = 0; i < gameObjects.Count; i++)
Console.WriteLine(gameObjects[i].GetType());
到目前爲止好。不過,我在屏幕上顯示的內容應該比gameObjects中顯示的要多,因此我一直在試圖找出一種方法來查明是否有任何條目是重複的,因爲我在代碼中找不到任何內容可能會在列表中創建額外的對象。如果我能打印出列表中每個對象的名字,那將是非常棒的,但是因爲我沒有給出它們的名字,所以我認爲這是不可能的。還有什麼可以區分列表中的一個對象和我可以利用的另一個對象嗎?因爲它只是調試,所以我不想進入,並確保每個對象都有一個名稱。
謝謝!
編輯:
對於那些要求更多的代碼,我有一個功能,增加了類型staticObject的對象到gameObjects列表:
private void CreateStaticObject(Vector2 v2StaticObjectPosition)
{
Texture2D staticObjectTexture = Content.Load<Texture2D>(@"textures\StaticObject");
GameInfo.gameInfo.gameObjects.Add(new StaticObject(staticObjectTexture, v2StaticObjectPosition, sbSpriteBatch));
}
名單載一個名爲GameInfo類中。如果重要的話,每個StaticObject繼承自一個Sprite類。
我還添加了一個Player對象的名單,從StaticObject類繼承:
private void CreatePlayer(Vector2 v2PlayerPosition)
{
Texture2D playerTexture = Content.Load<Texture2D>(@"textures\Player1");
player1 = new Player(playerTexture, v2PlayerPosition, sbSpriteBatch);
}
我然後打印出清單的內容與此:
for(int i = 0; i < GameInfo.gameInfo.gameObjects.Count; i++)
{
string sObjectString = string.Format("Game object {0} is a {1}", i, GameInfo.gameInfo.gameObjects[i].GetType());
DrawWithShadow(sObjectString, new Vector2(10, 20 * i + 10));
}
DrawWithShadow ()只是一個簡單的方法,它很好地在屏幕上的所需位置格式化文本。不幸的是,對於通過調用CreateStaticObject()方法創建的每個對象,我最終在列表中有兩個條目。
這將真正有助於看到更多的代碼... – maccettura
定義「重複」,你的意思是兩個引用同一個實例嗎?或者你的對象實際上是否包含一些可以使用的數據? – DrNachtschatten
重現您的問題的信息會很好。 – LuckyLikey