【问题标题】:Having trouble selecting a sprite to draw randomly无法选择要随机绘制的精灵
【发布时间】:2012-04-11 15:07:51
【问题描述】:

我正在尝试自己开发我的第一个 XNA 游戏,只是寻找教程的来源并思考我自己的实现和解决方案。目前,我正在制作一款泡泡射击游戏,并在各自的位置绘制泡泡。

问题是,我已经实现了两种类型的气泡。程序通过随机生成器选择要绘制的类型(0 或 1 表示蓝色或红色),并根据结果将所选类型绘制到屏幕中。这种方法不起作用,我已经用尽了我的搜索资源。代码如下

for (int colBubCounter = 0; colBubCounter < maxVerticalBubNumber / 2; colBubCounter++)
        {
            for (int rowBubCounter = 0; rowBubCounter < maxHorizontBubNumber; rowBubCounter++)
            {

                Rectangle bubbleDrawRectangle = new Rectangle(initDrawCoordX, initDrawCoordY, bubbleWidth, bubbleHeight);
                //Randomizamos el tipo de burbujar a dibujar ( 0 = blue, 1 = red)
                bubbleType = randomGenerator.Next(0, 1);
                if (bubbleType == 0) spriteBatch.Draw(blueBubbleSprite, bubbleDrawRectangle, Color.White);
                else if (bubbleType == 1) spriteBatch.Draw(redBubbleSprite, bubbleDrawRectangle, Color.White);

                //Cada vez que dibujamos uno, corremos la coordenada a dibujar en el otro ciclo en 10 pixeles
                initDrawCoordX += bubbleWidth;
            }

            initDrawCoordX = 0;
            initDrawCoordY += bubbleHeight;
        }

System.Random randomGenerator = new System.Random();

我没有使用类或任何比原始代码更多的东西,因为我正在逐步开发,一旦准备好,我将对类和其他花哨的东西做同样的事情。

感谢您的帮助,如果我在这个问题上做错了,请告诉我,这是我在 StackOverflow 的第一次。 :)

【问题讨论】:

  • 您写了很多,但并没有真正明确您的要求,据我了解,您想要生成随机数,并根据它们为您的气泡着色,您在问如何做到这一点?
  • @LyubenTodorov 哎呀,对不起。是的,这正是我的问题。

标签: c# random xna generator sprite


【解决方案1】:

randomGenerator.Next(0, 1); 将始终返回 0,因为 maxValue(上限)是排他的。您需要使用randomGenerator.Next(0, 2) 来生成零和一。

【讨论】:

  • 哇。做到了。看来我的随机发生器来源是错误的。非常感谢!
【解决方案2】:

您正在使用带有 2 个重载的随机方法 Next(),告诉它范围在 0 和 1 之间,这意味着它将始终 return 0

这是因为上界(在本例中为 1)是排除的,如从 0 到 1 但不包括 1...所以它是从 0 到 0。

试试bubbleType = randomGenerator.Next(2);

bubbleType = randomGenerator.Next(0, 2);

和随机类的提示,尝试使其成为类级别,并仅使用 1 个对象来生成更多随机数(创建一个新对象通常会更频繁地给出与其伪随机数相同的数字)

【讨论】:

  • 谢谢你的提示,我不知道最后一部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
相关资源
最近更新 更多