【问题标题】:How to random generate objects on the X axis?如何在X轴上随机生成物体?
【发布时间】:2015-03-30 08:49:46
【问题描述】:

我正忙于自己的一个项目,并且在某个部分遇到了麻烦。我想要一个随机的在随机 X 轴位置生成我的图片框。我会给你发一张我的应用程序外观的图片,下面是一些代码。

我对编程非常陌生,所以“高级”和非常智能的解决方案对我来说仍然未知。如果遮住这个问题。请善待:)

如您所见。所有黑条相互对齐,Y 轴和最重要的 X 轴保持不变。所以游戏是可以预见的..它只有一个底部的黑色图片框需要通过的开口..

这是我为“敌人/黑条”的位置所做的方法 顺便说一句,我在顶部添加了一个“int position on 0”的字段

    public int VijandPositie()      // methode om de positie van de vijand te bepalen
    {
        positie += 1;
        return positie;
    }

我在这个 timer_tick 事件中实现了这个方法。

    private void timer1_Tick(object sender, EventArgs e)        // timer voor het te laten bewegen van de vijanden
    {
        Vijand1.Top = VijandPositie();
        Vijand2.Top = VijandPositie();
        Vijand3.Top = VijandPositie();
        Vijand4.Top = VijandPositie();
        Vijand5.Top = VijandPositie();
        Vijand6.Top = VijandPositie();
        Vijand7.Top = VijandPositie();
        Vijand8.Top = VijandPositie();

        if (Vijand1.Top >= gbSpeelVeld.Height || Vijand2.Top >= gbSpeelVeld.Height || Vijand3.Top >= gbSpeelVeld.Height || Vijand4.Top >= gbSpeelVeld.Height || Vijand5.Top >= gbSpeelVeld.Height || Vijand6.Top >= gbSpeelVeld.Height || Vijand7.Top >= gbSpeelVeld.Height || Vijand8.Top >= gbSpeelVeld.Height)
        {
            positie = 0;        // zorgt ervoor dat de positie gereset wordt op 0 en dan begint de pijl weer van boven af aan
            score = Convert.ToInt32(lblScore.Text); // score wordt geconverteerd naar de label
            score = score + 1;
            lblScore.Text = score.ToString();
        }

黑条到达屏幕末端后,它们将再次回到顶部,但 X 轴位置保持不变。我知道我还没有在里面放一个随机数..所以我知道这行不通。但我不知道在哪里或如何实现随机以在 X 轴上随机获取黑条(Y 轴不太重要 IMO)。

提前谢谢各位!

【问题讨论】:

    标签: c# .net winforms random


    【解决方案1】:

    如果您想为您持有的任何轴随机生成值,请使用Random class

    重要的是你要明白你的 Random 类必须只在一个地方创建或者在每次创建之间有很长时间,否则它会得到相同或非常相似的值,所以我会这样做

    Random random = new Random;
    
    //Some Methods
    void CreationOfTheBlackSquares()
    {
        PictureBox BlackSquare = new PictureBox();
        int XAxis = random.Next(0,Form.Width); //here you should set the values of the Xaxis
        int YAxis = random.Next(0, From.Height);  //here you should set the values of the Yaxis
        BlackSquare.Location = new Point(XAxis,YAxis); //Setting the Position of the BlackSquare accordling with your X/y Axis
        Form.Controls.Add(BlackSquare) // Adding the black square to your form so it will appears on the screen
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-10
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多