Bonjour,
J'ai un petit problème dans une fonction utilisant la classe Random.
Lorsque j'utilise plusieurs fois ma fonction, j'ai mes carottes glacées qui apparaissent superposées à mes carottes normales.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 private void Addcarottes(carotte.carottesize size, int num) { Random rand = new Random(); for (int i = 0; i < num; i++) { carotte newcarotte = new carotte(size); double left = rand.Next(1, 764); double top = rand.Next(1, 564); carottes.Add(newcarotte); parent.Children.Add(newcarotte); do{ newcarotte.SetValue(Canvas.LeftProperty, (double)rand.Next(1, 764)); newcarotte.SetValue(Canvas.TopProperty, (double)rand.Next(1, 564)); } while (((double)newcarotte.GetValue(Canvas.LeftProperty) > ((double)lapin.GetValue(Canvas.LeftProperty) + 3 * lapin.Width) || (double)newcarotte.GetValue(Canvas.LeftProperty) < ((double)lapin.GetValue(Canvas.LeftProperty) - 3*lapin.Width)) && (((double)newcarotte.GetValue(Canvas.TopProperty) > ((double)lapin.GetValue(Canvas.TopProperty) + 2 * lapin.Height)) || ((double)newcarotte.GetValue(Canvas.LeftProperty) < ((double)lapin.GetValue(Canvas.TopProperty) - 2*lapin.Height)))); newcarotte.Velocity = gameLevel; newcarotte.Direction = rand.Next(0, 359); double rads = (newcarotte.Direction - 90) * 0.0174532925199433; newcarotte.XSpeed = newcarotte.Velocity * Math.Cos(rads); newcarotte.YSpeed = newcarotte.Velocity * Math.Sin(rads); newcarotte.InUse = true; if (size == carotte.carottesize.Ice) { numIce++; Icetouchable++; newcarotte.touchable = true; } } } }
Mes carottes glacées sont donc créées et ajoutées au canevas puis les carottes normale le sont elles aussi. Le problème, c'est que mon random me sort deux fois la même série de chiffre, ce qui donne à mon lapin bien du fil à retordre car ses carottes sont indissociable car ayant la même vitesse, la même direction et le même point de départ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Addcarottes(carotte.carotteSize.Ice, null, 3); Addcarottes(carotte.carotteSize.Large, null, numLevel - 1);
Est-ce modifiable?
Partager