Ich bin eigentlich ein neuer Student in XNA, finde diese Bibliothek sehr interessant, aber mir fehlt noch etwas Wissen, um weiter zu gehen, da ich ein Problem fühlte, das ich nicht selbst beheben kann :(C# ArgumentNullException wurde nicht behandelt (SpriteBatch.Draw)
Die spriteBatch.Draw() -Methode sagt meine Textur ist null, aber ich habe es in einer Resources.cs-Klasse geladen und die Textur in MainMenu.cs übergeben, so dass ich nicht wirklich weiß, wo das Problem liegt wenn jemand mir darüber helfen könnte, würde ich sehr dankbar sein!
Resources.cs
class Resources
{
public static Texture2D pixel;
public static Texture2D startButton, loadButton, quitButton;
public static SpriteFont consoleFont;
public static void LoadContent(ContentManager Content)
{
pixel = Content.Load<Texture2D>("Pixel");
consoleFont = Content.Load<SpriteFont>("Console");
// UI Ressources :
startButton = Content.Load<Texture2D>("UI/StartButton");
loadButton = Content.Load<Texture2D>("UI/LoadButton");
quitButton = Content.Load<Texture2D>("UI/QuitButton");
}
}
MainMenu.cs
class MainMenu
{
// Fields
List<Button> buttons = new List<Button>();
// Constructors
public MainMenu()
{
this.buttons.Add(new Button(new Vector2(480, 132), 256, 48, Resources.startButton));
this.buttons.Add(new Button(new Vector2(480, 212), 256, 48, Resources.loadButton));
this.buttons.Add(new Button(new Vector2(480, 292), 256, 48, Resources.quitButton));
}
// Methods
// Update
public void Update()
{
}
// Draw
public void Draw(SpriteBatch spriteBatch)
{
foreach (Button button in buttons)
{
button.Draw(spriteBatch);
}
}
}
Button.cs
class Button : UIElement
{
int width, height;
Texture2D texture;
public Button()
{
}
public Button(Vector2 b_position, int b_width, int b_height, Texture2D b_texture)
{
this.position = b_position;
this.width = b_width;
this.height = b_height;
this.texture = b_texture;
}
public void Update()
{
}
public void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(texture, position, Color.White);
}
}
Danke, dass es funktioniert! Ich wusste nicht, dass ich das so machen könnte, ich habe ein Video gesucht, in dem der Typ sein Menü im Spielkonstruktor erklärt, ich sehe es nicht immer so, es ist logisch wenn ich darüber nachdenke: D –
@JeanMeier das Mann hatte wahrscheinlich keine Ressourcen Klasse: D btw, das ist ein gutes Konzept! Die Ressourcenklasse (Sie könnten es statisch machen). Mach weiter! – Monset