小编AJC*_*Col的帖子

C#Random()不能随机工作

快问问题

在我的游戏中,我目前需要在屏幕底部生成并向上移动的项目.一旦它们到达屏幕顶部或与它们消失的玩家发生碰撞,并且应该沿着屏幕底部的X轴随机产生.第一个项似乎总是在随机点产生,但是,第二个对象似乎总是在与第一个产生相同的点上产生,尽管使用该方法的单独调用产生.有任何想法吗?这是我正在使用的代码:

       public void ReSpawn()

        this.RandX = this.random.Next(30, 650);
        this.Position.X = RandX;
        this.Position.Y = 710;

        if (Object1.Position.Y <= -25) //If item reaches top of screen

                Object1.ReSpawn(); 

        if (Object1.rectangle.Intersects(Player.rectangle)) //Collision with player


                Object1.ReSpawn(); 

        if (Object2.Position.Y <= -25) //If item reaches top of screen

                Object2.ReSpawn();

        if (Object2.rectangle.Intersects(Player.rectangle)) //Collision with player


                Object1.ReSpawn(); 
Run Code Online (Sandbox Code Playgroud)

声明使用:

    public Random random = new Random();
    public int RandX;
Run Code Online (Sandbox Code Playgroud)

c# random xna

3
推荐指数
1
解决办法
168
查看次数

如何创建DRYer构造函数

有什么办法可以让以下任何构造函数重复性降低吗?即只使用一个构造函数或没有多个'topping.add'调用?我的目标是制作一个可以有1,2或3种不同配料的披萨

private PizzaBase base;
List<PizzaTopping> toppings = new ArrayList<PizzaTopping>();

public Pizza(PizzaBase base, PizzaTopping topping) //Constructor for pizza with 1 topping
{
    setBase (base);
    toppings.add(topping);
}

public Pizza(PizzaBase base, PizzaTopping topping, PizzaTopping topping2) //Constructor for pizza with 2 toppings
{
    setBase (base);
    toppings.add(topping);
    toppings.add(topping2);
}

public Pizza(PizzaBase base, PizzaTopping topping, PizzaTopping topping2, PizzaTopping topping3) //Constructor for pizza with 3 toppings
{
    setBase (base);
    toppings.add(topping);
    toppings.add(topping2);
    toppings.add(topping3);

}
Run Code Online (Sandbox Code Playgroud)

最初我在考虑使用for循环将提供的顶部添加到列表中,但我不确定如何迭代构造函数给出的值

java constructor list

0
推荐指数
1
解决办法
79
查看次数

标签 统计

c# ×1

constructor ×1

java ×1

list ×1

random ×1

xna ×1