Joueur de classe avec mon C# XNA game
J'avais l'habitude de demander de l'aide sur le XNA forums, mais ils sont bas en ce moment, donc je suis venu ici.
Je fais un nouveau XNA game, et je veux avoir un joueur de classe. Pour le moment j'ai une classe de jeu principal appelé Dots
. Cela représente la partie principale. C'est ainsi que ma Player
classe est prévu pour le 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)
{
}
}
}
Mais j'obtiens une erreur que je ne peux pas travailler sur la façon de les résoudre. L'erreur est:
Erreur lors du chargement de "Joueur". GraphicsDevice
composant introuvable.
C'est la jetant sur cette ligne: PlayerTexture = Content.Load<Texture2D>("Player");
.
Je vois dans le jeu principal de la classe il y a cette ligne: Graphics = new GraphicsDeviceManager(this);
mais je n'ai aucune idée de quoi faire avec elle. Dois-je le passer à mon Player
classe, ou quoi?
Toute aide est appréciée, merci.
Arg. Alors je n'ai aucune idée de comment bien faire ce que je veux faire. Je vais devoir attendre jusqu'à ce que le XNA forums sont ouverts de nouveau et de prendre un coup d'oeil la façon dont ils vous conseille d'en faire.
Pourquoi ne pas demander? XNA programmeurs sont... euh programmeurs... c'est ce que StackOverflow est pour.
Désolé, je ne voulais pas dire que j'avais attendre jusqu'à ce que leurs forums sont en place. Mais il pourrait être préférable de demander parce que leur forum d'aide est, après tout, specificially pour le XNA framework.
OriginalL'auteur Wen | 2010-10-08
Vous devez vous connecter pour publier un commentaire.
Mise à JOUR: Cette réponse est apparemment correct pour les anciennes versions de XNA. Voir Andrew Russell répondre pour ce qui est utilisé actuellement.
Essayer de substitution de la LoadGraphicsContent méthode pour charger votre contenu. Comme indiqué dans ce tutoriel.
LoadGraphicsContent
est obsolète pour un temps très long.Russell: Merci, Andrew. J'ai été à essayer d'aider les OP le long, même si je suis familier avec XNA. Je vais quitter cette réponse ici au cas où quelqu'un trébuche sur elle. Que, avec votre commentaire et la réponse à cette question devrait aider à diriger les gens dans la bonne direction dans l'avenir.
OriginalL'auteur Michael Todd
Tout d'abord, vous ne semblent pas avoir une compréhension de la façon dont les classes (et les espaces de noms). Je te suggère (comme je l'ai fait aussi un commentaire sur votre autre question) travaillant sur un jeu simple qui n'a pas besoin de classes, d'abord.
Maintenant à parler des problèmes dans votre code:
Tout d'abord, afin de charger le contenu, les graphiques, l'appareil doit avoir été initialisé. Il n'est pas initialisé jusqu'à
LoadContent
est appelé dansMicrosoft.Xna.Framework.Game
. C'est expliqué dans la documentation:Donc déplacer votre code de chargement:
Remarquez comment il est un remplacer (d'une méthode protégée). Je n'ai pas vraiment envie de me lancer dans une explication de ce que cela signifie ici, mais je vous suggère de le découvrir.
En outre, vous trouverez que
Draw
etUpdate
sont censés être de même surchargé, car ils seront appelés à partir de XNA.Maintenant, voici les bits importants: Ce que je viens de vous s'applique si vous êtes d'hériter de votre classe de jeu de XNA
Game
classe. En l'appelant "le Joueur", vous indiquant un manque de compréhension de la façon de faire fonctionner des classes.Si vous faites un "Joueur" de la classe, prendre un coup d'oeil à ce qui vous a été dit dans la réponse à la votre autre question.
Vous pouvez également trouver cette dernière question la peine de lire.
OriginalL'auteur Andrew Russell
Récemment dans XNA, vous pouvez maintenant cliquer sur certaines options et ont Intellisense le corriger pour vous. Ainsi, par un clic droit sur Texture2D et Rectangle lorsque vous déclarez que vous devriez être en mesure de choisir de "Résoudre" et il vous demandera de choisir "utiliser une autre bibliothèque afin qu'il puisse compiler ensuite. Voir si cela résout votre problème. Mais, généralement avec des classes en particulier, je l'utiliser et il fonctionne bien.
OriginalL'auteur Schnazy72
Une liste de ce qui a fonctionné pour moi:
Build Action
est fixé àCompile
.spritefont
fichier (utilisez cette question comme une référence)LoadContent
ou plus tard dans le cycle de vieOriginalL'auteur ashes999
Pense que j'ai eu une erreur similaire une fois.
Clic droit sur la Solution dans l'Explorateur de solutions.
Allez dans les Propriétés.
Si Profil de Jeu est "Hi Def".. changer pour "Atteindre".
Recompiler et de l'Exécuter.
OriginalL'auteur RekrowYnapmoc