我已經創建了一個靜態類,它需要能夠更改對象中使用的精靈。但是,在非靜態類中,我能夠將對象中的ContentManager引用爲this.Content
,但是在靜態類中,它表示「this」不能使用。在靜態類中引用ContentManager? (C#,XNA)
對於如何從靜態類引用此對象中的內容管理器,我有點遺憾。我嘗試使用該對象而不是this
(enemies[i].
),但這沒有奏效。我也嘗試過使用ContentManager.
,但它告訴我不存在。
我還沒有完全理解ContentManager以及它爲什麼需要放在每個對象中,但我很難找到關於它是什麼以及它做什麼的真正詳細的信息(大多數教程似乎忽略了它,只是說它的必要)
繼承人我到目前爲止的代碼片段。它簡化了一下(多很多那張),但只有this.Content
部分是給我找麻煩:
public static void fight(List<enemy> enemies)
{
for (int i = 0; i < enemies.Count; i++)
{
if (enemies[i].hp <= 0)
{
enemies[i].LoadContent(this.Content, "spr_enemy_dead");
}
這是包含enemy
對象內部的內容管理的方法:
public void LoadContent(ContentManager theContentManager, string AssetName)
{
spr_enemy = theContentManager.Load<Texture2D>(AssetName);
}
可能有更好的方法來做到這一點,但我沒有找到任何東西在我的搜索。
你一直在談論「對象」 - *哪個*對象?靜態方法沒有上下文...你瞭解靜態和實例方法之間的區別嗎? (如果你是C#的新手,我會強烈建議你在開始使用XNA之前通過簡單的控制檯應用程序學習語言。) –
好吧,這有點苛刻,但是確實如此。您可以嘗試將ContentManager作爲參數傳遞給fight方法,但是您確實不應該那樣做。 :) – Davio
對不起,列表(列表敵人)是我傳入此方法的對象的列表。我的意思是包括但忘記。 –