2017-04-15 3 views
0

Was mache ich in dieser Klasse falsch? Ich verwende Monogame und C#, aber mein Objekt wird nicht im Programm dargestellt.Was mache ich falsch in dieser Monogame-Klasse?

class Player : Game 
    { 
     Texture2D PlayerSprite; 
     Vector2 PlayerPosition; 


     public Player() 
     { 
      Content.RootDirectory = "Content"; 
      PlayerSprite = Content.Load<Texture2D>("spr_Player"); 
      PlayerPosition = Vector2.Zero; 
     } 

     public void Update() 
     { 


     } 

     public void Draw(SpriteBatch SpriteBatch) 
     { 
      SpriteBatch.Begin(); 
      SpriteBatch.Draw(PlayerSprite,PlayerPosition, new Rectangle(0, 0, 32,32), Color.White); 
      SpriteBatch.End(); 
     } 
    } 
+0

erhalten Sie einen Fehler entdeckt? – CodingYoshi

+0

Kein Fehler, es ist nur nicht mein Objekt angezeigt, wenn ich kompiliere. Das ist in einer anderen Klasse namens player, sollte ich etwas anderes aus der Game1-Klasse referenzieren? –

+0

@Liam Earle, wo erstellst du einen Player? – vyrp

Antwort

0
  • Die Last, Aktualisieren und Zeichnen Methoden gehören zum Spielklasse geerbt und von ihrem overrided.
  • Sie müssen auch Ihr SpriteBacth-Objekt starten.
  • Das GraphicsDevice-Objekt existiert in der Hauptklasse des Spiels.

Try this:

class Player : Game 
{ 
    Texture2D PlayerSprite; 
    Vector2 PlayerPosition; 
    SpriteBatch spriteBatch; 

    public Player() 
    { 
     Content.RootDirectory = "Content"; 
     PlayerSprite = Content.Load<Texture2D>("spr_Player"); 
     PlayerPosition = Vector2.Zero; 
    } 

    protected override void LoadContent() 
    { 
     spriteBatch = new SpriteBatch(GraphicsDevice); 
    } 

    protected override void Update(GameTime gameTime) 
    { 
    } 

    protected override void Draw(GameTime gameTime) 
    { 
     spriteBatch.Begin(); 
     spriteBatch.Draw(PlayerSprite,PlayerPosition, new Rectangle(0, 0, 32,32), Color.White); 
     spriteBatch.End(); 
    } 
}