2016-11-11 3 views
0

Что я здесь отсутствуетмой Sprite Isnt рисунок на экране XNA

Sprite класса

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); 

Спасибо за вашу помощь.

+0

его C# да ха-ха моя ошибка – LawrenceB

ответ

0

Я пропустил много кода в Game1.class, было бы неплохо увидеть, как весь класс выглядит, если вам что-то не хватает.

Так что сейчас я дам вам несколько советов:

-Я не вижу никакого spritebatch.begin() или spritebatch.End() в классе game1, так как это так укорачивается до, это необходимо для того, чтобы нарисовать что угодно.

-Вы также можете попробовать поставить точку останова в тот момент, когда она должна рисовать текстуру. и проверить, действительно ли он нарисовал его или, по крайней мере, может достичь этого.

-Еща возможность, он делает рисовать спрайт, но это место находится вне границ (за пределы окна игры), я предпочитаю положить позицию на 0, пока я уверен, что он может сделать текстуру

-Я также предпочитаю работать с '{}' в любом if-statement, даже если это одна строка кода, что делает код более понятным и будет избегать ошибок, как начинающий программист, я считаю, что это необходимо для делать. гораздо больше, чем оптимизация.

Это все, надеюсь, это поможет

Смежные вопросы