Spieler-Klasse mit meinem C# - XNA-Spiel
Ich würde in der Regel suchen Sie Hilfe auf der XNA-Foren, aber Sie sind momentan down, so dass ich hier gekommen.
Ich mache eine neue XNA game, und ich möchte eine Spieler-Klasse. Im moment habe ich eine main-Klasse Spiel genannt Dots
. Dies stellt die wichtigsten Spiel. Dies ist, wie mein Player
Klasse ausgelegt ist im moment:
namespace Dots
{
class Player : Microsoft.Xna.Framework.Game
{
Texture2D PlayerTexture;
Vector2 PlayerPosition;
public Player()
{
Content.RootDirectory = "Content";
PlayerTexture = Content.Load<Texture2D>("Player");
PlayerPosition = Vector2.Zero;
}
public void Update()
{
}
public void Draw(SpriteBatch SpriteBatch)
{
}
}
}
Aber ich erhalte eine Fehlermeldung, die ich kann nicht herausfinden, wie zu lösen. Der Fehler ist:
Fehler beim laden der "Spieler". GraphicsDevice
Komponente nicht gefunden.
Es wirft es an dieser Zeile: PlayerTexture = Content.Load<Texture2D>("Player");
.
Sehe ich in der main Klasse Spiel es ist diese Zeile: Graphics = new GraphicsDeviceManager(this);
aber ich habe keine Ahnung, was mit ihm zu tun. Übertrage ich es auf meine Player
Klasse, oder was?
Jede Hilfe ist willkommen, danke.
Arg. Dann habe ich keine Ahnung, wie man richtig zu tun, was ich tun möchte. Ich werde warten müssen, bis die XNA-Foren sind wieder offen und schauen Sie, wie Sie empfehlen, es zu tun.
Warum nicht hier Fragen? XNA-Programmierer sind... ähm ... Programmierer... das ist es, was StackOverflow ist.
Sorry, ich habe nicht gemeint ich würde , zu warten, bis deren Foren sind. Aber es könnte besser sein, Fragen dort, weil Ihre Hilfe-forum ist, nachdem alle, specificially für das XNA-framework.
InformationsquelleAutor Wen | 2010-10-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
UPDATE: die Antwort ist offenbar richtig für ältere Versionen von XNA. Sehen Andrew Russell ' s Antwort für das, was verwendet wird momentan.
Versuchen überschreiben der LoadGraphicsContent Methode zum laden der Inhalte. Wie gezeigt in dieses tutorial.
LoadGraphicsContent
wurde obsolet, für eine sehr lange Zeit.Russell: Danke, Andrew. Ich habe versucht zu helfen, die OP zusammen, obwohl ich bin nicht vertraut mit XNA. Ich lasse diese Antwort hier, falls jemand stolpert über Sie. Die, zusammen mit Ihrem Kommentar und die Antwort auf diese Frage sollte helfen, Steuern die Menschen in die richtige Richtung in die Zukunft.
InformationsquelleAutor Michael Todd
Zunächst alles, was Sie scheinen zu fehlen, die ein Verständnis von, wie die Klassen (und namespaces) arbeiten. Ich würde vorschlagen (so habe ich das auch getan in einem Kommentar auf deine andere Frage) arbeiten auf ein einfaches Spiel, das nicht braucht, Klassen, ersten.
Nun zu sprechen über die Probleme in deinem code:
Zunächst, um auf das laden von Inhalten, die Grafik Gerät muss initialisiert wurden. Es ist nicht initialisiert, bis
LoadContent
heißt inMicrosoft.Xna.Framework.Game
. Dies ist in der Dokumentation erläutert:Also bewegen Sie Ihren code laden:
Merken, wie es ist ein überschreiben (einer protected-Methode). Ich weiß nicht wirklich wollen, in zu erhalten eine Erklärung von, was das bedeutet, aber ich schlage vor, Sie herauszufinden.
Zusätzlich, Sie werden feststellen, dass
Draw
undUpdate
sollen ebenso übernommen werden, wie Sie genannt werden von XNA.Nun, hier ist der wichtige Teil:, Was ich Euch gerade gesagt gilt, wenn Sie Erben Ihre Klasse Spiel aus dem XNA
Game
Klasse. Durch aufrufen es "Spieler" sind Sie an ein Missverständnis, wie die Klassen funktionieren.Wenn Sie eine "Player" - Klasse, nehmen Sie einen Blick an, was Sie gesagt, in der Antwort auf Ihre andere Frage.
Finden Sie auch dieser letzten Frage lesenswert.
InformationsquelleAutor Andrew Russell
Kürzlich in XNA, können Sie jetzt rechtsklicken Sie auf bestimmte Optionen und Intellisense beheben es für Sie. So, mit der rechten Maustaste auf Texture2D und Rechteck, wenn Sie erklären, Sie sollten in der Lage sein zu wählen "Auflösen" und es wird Sie bitten, zu entscheiden, "mit" einige "andere Bibliothek", so dass es kompilieren können, dann. Sehen Sie, ob das Ihr problem behebt. Aber, in der Regel mit Klassen vor allem verwende ich diese und es funktioniert gut.
InformationsquelleAutor Schnazy72
Eine Checkliste, was für mich gearbeitet:
Build Action
eingestellt istCompile
.spritefont
Datei (verwenden Sie diese Frage als Referenz)LoadContent
oder später im life-cycle -InformationsquelleAutor ashes999
Glaube, ich hatte einen ähnlichen Fehler mal.
Rechten Maustaste auf die Projektmappe im Projektmappen-Explorer.
Gehen Sie zu Eigenschaften.
Wenn Spiel-Profil "Hi-Def".. ändern zu "Erreichen".
Neu kompilieren und Ausführen.
InformationsquelleAutor RekrowYnapmoc