2016-11-11 77 views
0

我失去了什麼這裏我雪碧心不是畫在屏幕上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中的很多代碼,如果你錯過了任何東西,很高興看到整個類看起來很好。

所以現在,我給你一些提示:

-I看不到Game1類的任何spritebatch.begin()或spritebatch.End(),因爲它是如此縮短了,那些應該被要求爲了畫什麼。

- 您也可以嘗試在應該繪製紋理的那一刻放置斷點。並檢查它是否真的吸引它,或者至少可以達到它。

-Another可能性,它繪製的精靈,但它的位置是出界,(遊戲窗口外),我更喜歡把0的位置,直到我敢肯定,它可以繪製紋理

- 我更喜歡在任何if語句中使用'{}',即使它是一行代碼,它使代碼更清晰並避免錯誤,作爲新手程序員,我發現這是需要的做。遠不止優化。

這就是現在,希望這有助於