在随机位置绘制多个精灵
本文关键字:精灵 绘制 随机 位置 | 更新日期: 2023-09-27 18:11:09
我正在创建一款XNA游戏,并希望在随机位置绘制多个精灵。我遇到的问题是,每次调用Draw()函数时,精灵都会在新的位置重新绘制。这让它们随机地在屏幕上闪烁。我想让他们画一次,并保持在那个位置。
我已经创建了一个列表来保存精灵:
List<Texture2D> kiwis = new List<Texture2D>();
然后在LoadContent()函数中,我将精灵添加到列表中:
kiwi = Content.Load<Texture2D>("Sprites/kiwi");
if (kiwis.Count() < 4)
{
kiwis.Add(kiwi);
}
然后在Draw(),我有:
foreach (Texture2D kiwi in kiwis)
{
spriteBatch.Draw(kiwi, kiwiPosition, Color.White);
}
这是kiwiPosition Vector2:
kiwiPosition = new Vector2(random.Next(30, 610), random.Next(30, 450));
提前感谢:)
除了我的注释外,根据需要插入并替换以下内容
public class Fruit
{
private Vector2 pos;
public Vector2 Position
{
get{return pos;}
set{pos = value;}
}
public Texture2D Texture {get;set;}
public Fruit(Texture2D tex, Vector2 pos)
{
Position = pos;
Texture = tex;
}
}
List<Fruit> kiwis = new List<Fruit>();
kiwi = Content.Load<Texture2D>("Sprites/kiwi");
if (kiwis.Count() < 4)
{
kiwis.Add(new Kiwi(kiwiTex,
new Vector2(random.Next(30, 610), random.Next(30, 450)));
}
foreach (Fruit kiwi in kiwis)
{
spriteBatch.Draw(kiwi.Texture, kiwi.Position, Color.White);
}
这个方法和你当前的方法的区别是,你的位置只会被设置一次,而不是每帧一次