Entwickler-Ecke
Multimedia / Grafik - XNA 1.0 : NullReferenceExeption wurde nicht behandelt
Bethsoftfan - Do 05.06.08 16:51
Titel: XNA 1.0 : NullReferenceExeption wurde nicht behandelt
Hallo!
Ich hätte diesmal ne Frage um XNA und C#! :P
Also ich habe mal angefangen zu code, nachdem ich mich monatelang nur mit Theorie beschäftigt habe, und nie auf den grünen Zweig im Praktischen gekommen bin :? . Egal.
Also er gibt mir eine NullReferenceExeption an der markierten Stelle :
Game1.cs
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78:
| #region Using Statements using System; using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Storage; using Strategie_2._0; #endregion
namespace Strategie_2._ { public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; ContentManager content; Texture2D Backgroundtex; Karte karte1; SpriteBatch hintergrund;
public Game1() { graphics = new GraphicsDeviceManager(this); content = new ContentManager(Services); }
protected override void Initialize() { Backgroundtex = content.Load<Texture2D>("Content\\Tex\\background"); base.Initialize(); karte1.Initialisiern (hintergrund ,new Vector2(100.0f,100.0f),Backgroundtex); }
protected override void LoadGraphicsContent(bool loadAllContent) { if (unloadAllContent) { content.Unload(); } }
protected override void UnloadGraphicsContent(bool unloadAllContent) { if (unloadAllContent) { content.Unload(); }
}
protected override void Update(GameTime gameTime) { if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit();
base.Update(gameTime); }
protected override void Draw(GameTime gameTime) { graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
base.Draw(gameTime); } } } |
und die Karte.cs :
Karte.cs
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| #region Using Statements using System; using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Storage; using Strategie_2._0; #endregion
namespace Strategie_2._0 { class Karte {
#region (Initialisieren)
public void Initialisiern(SpriteBatch Wo,Vector2 Wiegroß, Texture2D Grund) { Wo.Draw(Grund, Wiegroß, Color.White); }
#endregion } } |
Weißt ihr was das bedeutet?
Sry, ich bin noch etwas neu auf diesem Gebiet. :oops:
Danke!
Christian S. - Do 05.06.08 16:55
Nimm's mir nicht übel, aber wennn Du nicht weißt, wie Du mit einer NullReferenceException umzugehen hast, dann solltest Du vielleicht erstmal leichtere Sachen programmieren als direkt mit XNA anzufangen.
Du benutzt karte1 ohne sie jemals zu erstellen, somit ist die Instanz null.
Bethsoftfan - Do 05.06.08 17:02
Hmm, danke für die schnelle Antwort!
Also, also vielleicht sollte ich mich mal einwenig mehr in C# einarbeiten, aber wo gibt es dazu etwas? Wie soll ich denn Karte1 erstellen? Wie soll ich überhaupt eine Class erstellen? Leider sind dazu die Antworten dünn gesäht.
Könntest du mir nur in etwa einen Codeschnipsel bitte geben, ich bin der, der aus Beispielen lernt, auch wenn es jetzt etwas zuviel verlangt ist. :|
Christian S. - Do 05.06.08 17:05
Bethsoftfan hat folgendes geschrieben: |
Also, also vielleicht sollte ich mich mal einwenig mehr in C# einarbeiten, aber wo gibt es dazu etwas? Wie soll ich denn Karte1 erstellen? Wie soll ich überhaupt eine Class erstellen? Leider sind dazu die Antworten dünn gesäht. |
Du erstellst die Instanz einer Klasse mittels des Konstruktors. Und von dünn gesäht kann eigentlich keine Rede sein, es gibt immerhin ein ganzes Buch online und kostenlos zu C#:
OPENBOOK VISUAL C#
Bethsoftfan hat folgendes geschrieben: |
Könntest du mir nur in etwa einen Codeschnipsel bitte geben, ich bin der, der aus Beispielen lernt, auch wenn es jetzt etwas zuviel verlangt ist. :| |
Schau einfach in dem Buch mal nach, wie man mit Klassen arbeitet. Das Aufrufen eines Konstruktors dürfte extremst weit am Anfang stehen ;-)
Bethsoftfan - Do 05.06.08 17:19
Ok, danke!
daran hatte ich nicht gedacht, die meisten E-Books kosten etwas dachte ich.
Edit : Wäre also nichts weiter nötig, das initalisiern in Karte(...) umzubennen?
Edit2: doch nicht.
Edit3: Jetzt läufts! Jetzt verstehe ich alles! Jetzt habe ich zum ersten mal den Debugger benutzt, das war zu Delphizeiten nicht nötig :D .
Welchen Status soll ich GraphicsAdapter adapter zuweisen? Einen constructor gibt es da nicht.
Ok alles geschnallt und alles funzt! :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!