只是想检查这是否是正确的方法去做这件事,或者如果有更好的方法来做到这一点。我创建了一个按钮,在点击时打开和关闭。我想这样做是为了当按钮打开时,一个精灵可见,当它关闭时,它不是。我是否正确地认为你将精灵设置为空,然后在打开时重新绘制或者应该以另一种方式完成?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。