我目前正在开展一个学校项目,错过了一个课程,教师在没有大量代码的情况下解释了如何做到这一点。
这是作业:
创建一个XNA应用程序,显示50个动画精灵向下加速。当精灵击中窗口底部时,使其反弹。在随机位置生成每个精灵,使精灵始终完全在窗口中。将随机位置的Y分量限制在0到300之间。最后,按下空格键,使精灵重置为原始位置。
这是一个示例图像的链接,rep不足以插入图像
http://hypergrade.com/grader/file_download.php?id=132
我有一个精灵绘制和动画,我只需要一些关于为同一个Texture2D随机生成位置的指导。
答案 0 :(得分:0)
你应该使用Random class。
// Make one instance of random, the seed is the milliseconds, other way random always returns the same sequence of random numbers.
static readonly Random rnd = new Random(DateTime.Nom.Milliseconds);
List<Sprite> Sprites = new List<Sprite>(50);
public void Update()
{
//Add new sprites with a 90% or probability
if (Sprites.Count<50 && rnd.Next(100) > 90)
{
Sprite sprite = new Sprite();
// This X calculation makes the sprite not to get out of the screen at both sides
sprite.Pos.X = (float) ( (0.1f + 0.8f * rnd.NextDouble()) * GraphicsDevice.Viewport.Width);
sprite.Pos.Y = (float) ( rnd.NextDouble() * 300 );
Sprites.Add(Sprite);
}
}
当然de Sprite类取决于你.. :)