2016-11-11 2 views
0

Qu'est-ce que je manque icimon Sprite isnt dessin à l'écran XNA

Sprite Classe

private Texture2D m_tex; 
    public Rectangle rect; 
    private bool m_travellingRight; 
    private int x_pos; 

    //constructor 
    public LightSaber(Texture2D tex, int xpos, int ypos) 
    { 
     m_tex = tex; 
     rect = new Rectangle(xpos, ypos, m_tex.Width, m_tex.Height); 
     m_travellingRight = true; 
    } 

    public void drawme(SpriteBatch sb) 
    { 
     if (m_travellingRight) 
      sb.Draw(m_tex, rect, Color.White); 
     else 
      sb.Draw(m_tex, rect, null, Color.White, 0, Vector2.Zero, SpriteEffects.FlipHorizontally, 0); 
    } 

    public void updateme(GamePadState pad) 
    { 
     x_pos = rect.X; 
     if (pad.ThumbSticks.Left.X < 0 && x_pos > 0) 
     { 
      m_travellingRight = false; 
      rect.X -= 4; 
     } 
     else if (pad.ThumbSticks.Left.X > 0 && x_pos < 800 - rect.Width) 
     { 
      m_travellingRight = true; 
      rect.X += 4; 
     } 
    } 
} 

}

Game1:

LightSaber lightSaber; 

lightSaber = new LightSaber(Content.Load<Texture2D>("Textures\\Lightsaber"), 300, 500); 

lightSaber.drawme(spriteBatch); 

Merci pour votre aide.

+0

son C# oui haha ​​mon erreur – LawrenceB

Répondre

0

Il me manque beaucoup de code dans le Game1.class, ce serait bien de voir toute la classe à regarder si vous manquez quelque chose.

Donc pour l'instant, je vais vous donner quelques conseils:

-Je ne vois pas spritebatch.begin() ou spritebatch.End() dans la classe GAME1, car il est tellement raccourci jusqu'à, ceux-ci devraient être exigés pour tirer n'importe quoi.

-Vous pouvez également essayer de placer un point d'arrêt au moment où il devrait dessiner la texture. et vérifiez si elle le dessine réellement, ou au moins peut l'atteindre.

possibilité -Autre, il ne dessine l'image-objet, mais son emplacement est hors des limites, (en dehors de la fenêtre de jeu), je préfère mettre la position sur 0 jusqu'à ce que je suis sûr qu'il peut tirer la texture

-Je préfère aussi travailler avec '{}' à n'importe quelle instruction if, même si c'est une seule ligne de code, qui rend le code plus clair et évitera les erreurs, en tant que programmeur novice, je trouve que c'est une chose nécessaire faire. beaucoup plus que l'optimisation.

C'est tout pour l'instant, espérons que cela aide