只是想檢查這是否是正確的方法去做這件事,或者如果有更好的方法來做到這一點。我創建了一個按鈕,在點擊時打開和關閉。我想這樣做是爲了當按鈕打開時,一個精靈可見,當它關閉時,它不是。我是否正確地認爲你將精靈設置爲空,然後在打開時重新繪製或者應該以另一種方式完成?XNA雪碧的可見性
在此先感謝。
豐富
只是想檢查這是否是正確的方法去做這件事,或者如果有更好的方法來做到這一點。我創建了一個按鈕,在點擊時打開和關閉。我想這樣做是爲了當按鈕打開時,一個精靈可見,當它關閉時,它不是。我是否正確地認爲你將精靈設置爲空,然後在打開時重新繪製或者應該以另一種方式完成?XNA雪碧的可見性
在此先感謝。
豐富
一種方法是隻跟蹤知名度與布爾:
private bool _displaySprite; // Class-level field
然後,你的按鈕被點擊時就會切換將bool:
private void Button_Clicked()
{
_displaySprite = !_displaySprite;
}
然後你只需在Draw函數中檢查bool:
private void Draw()
{
if (_displaySprite)
{
// Draw the sprite
}
}
我會走下去一個略有不同的路線。
我會用像
class Sprite
{
public bool Visible {get; set; }
public Texture2D Texture{get; set; }
public Vector2 {get; set;
}
如果你想擴大這種進一步的(和你應該),你可以添加平局/更新方法到這個類,使它抽象,有你的遊戲對象從它繼承。你可以更好地控制你的精靈狀態,並且可能會清理你的代碼。
Microsoft.Xna.Framework.DrawableGameComponent旨在參與Update和Draw循環,爲IUpdateable和IDrawable提供實現。
根據「精靈」對象的編碼方式,您可以簡單地設置DrawableGameComponent.Visible。