快问问题
在我的游戏中,我目前需要在屏幕底部生成并向上移动的项目.一旦它们到达屏幕顶部或与它们消失的玩家发生碰撞,并且应该沿着屏幕底部的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)
您的两个对象可能不共享Random对象.因此,两个对象将生成相同的随机数序列.
Random在两个对象之间共享一个对象,它们应该生成不同的值.
编辑:
使random静态所有对象都使用它.
public static Random random = new Random();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
168 次 |
| 最近记录: |