我无法找到在for循环中创建方程式的方法,该方法将在List collectibleList
中生成许多对象,具体取决于角色所在的级别。就像现在一样,我的列表每个级别只创建一个collectible
。我猜测,这是因为i < currentLevel
的约束。但我不知道我应该使用什么样的约束或如何在等式中实现i
,以便可以将更多collectibles
添加到我的列表中,具体取决于currentLevel
。
// Set up each level the player encounters
public void NextLevel()
{
collectibleList.Clear();
currentLevel++;
timer = 10;
player.LevelScore = 0;
player.Position = new Rectangle(GraphicsDevice.Viewport.Width/2, GraphicsDevice.Viewport.Height/2, player.Position.Width, player.Position.Height);
// Random number generator that will help generate a random position of the collectible sprite
Random rng = new Random();
for (int i = 0; i < currentLevel; i++)
{
Collectible collectible = new Collectible(rng.Next(0, GraphicsDevice.Viewport.Width), rng.Next(0, GraphicsDevice.Viewport.Height), 70, 91, true);
collectible.ObjectSprite = collectibleSprite;
collectibleList.Add(collectible);
}
}
答案 0 :(得分:0)
由于您基于currentLevel(一次一个)进行迭代,因此您将在列表中的每个级别获得单个可收集条目。
您需要的是确定每次迭代添加多少收藏品的另一个因素 - 然后您可以将内循环置于主循环内,以生成每个级别所需的任意数量的收藏品。
即第1级的2个收藏品,第2级的5个收藏品等。
答案 1 :(得分:0)
你正在寻找一个好的增加整数函数,对吧?有很多选择可供选择。
f(n) = n
,f(n) = 2*n + 1
,f(n) = n +
⌊log(n)
⌋等
较大的 n 是较大的 f(n)。
获取给定 n 的数字的另一种方法是将随机数添加到 f(n - 1)。