Bonjour à tous !
J'ai développer un petit programme en VB.net :
Donc j'ai un objet bien structuré (j'éspère -_-") qui ce nomme "abeille"
et cet objet possède différentes fonction simple permettant à cette abeille de ce mouvoir etc ... Problème je n'arrive pas à faire croitre la population d'abeille :
En faite je ne trouve pas le moyen de crées une fonction naissance ...
Qui ferais du genre : dim abeille2 as abeille, dim abeille3 as abeille et qui pour chaque abeille créerai un panel qui la représente.
De plus quand je crée 2 abeilles manuellement la fonction random
passe par les mêmes valeurs et les abeilles ce déplace en même temps.
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 Public Class Form1 Dim Monabeille As abeille Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Monabeille = New abeille(Me.PAN_abeille.Location, Me.PAN_abeille.Size) Timer1.Start() End Sub Public Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 'On le fait avancer Monabeille.Avance() 'On recupère la nouvelle position Me.PAN_abeille.Location = Monabeille.Position Me.PAN_abeille.BackColor = Monabeille.couleur End Sub End ClassMerci beaucoup et 1000fois d'avances !
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 Public Class abeille Dim random As New Random Private _CoordonneesActuelles As Point Private _Taille As Size Private _Direction As Integer Private _Couleur As Color Sub New(ByVal PositionOriginelle As Point, ByVal TailleAbeille As Size) _CoordonneesActuelles = New Point(PositionOriginelle) _Taille = New Size(TailleAbeille) _Direction = random.Next(0, 359) _Couleur = Color.FromArgb(255, 127, 128, 0) End Sub Public Sub Avance() _Direction = VarDir() _Couleur = VarColor() _CoordonneesActuelles = CoordonneesSuivante() End Sub Public Property Position() As Point Get Return _CoordonneesActuelles End Get Set(ByVal value As Point) _CoordonneesActuelles = value End Set End Property Public Property couleur() As Color Get Return _Couleur End Get Set(ByVal value As Color) _Couleur = value End Set End Property Private Function sin(ByVal x As Double) Return Math.Sin((Math.PI * (x - 90)) / 180) End Function Private Function cos(ByVal x As Double) Return Math.Cos((Math.PI * (x - 90)) / 180) End Function Private Function CoordonneesSuivante() _CoordonneesActuelles.X = _CoordonneesActuelles.X + 1 * cos(_Direction) _CoordonneesActuelles.Y = _CoordonneesActuelles.Y + 1 * sin(_Direction) Return _CoordonneesActuelles End Function Private Function VarColor() Return Color.FromArgb(255, _Couleur.R + 1, _Couleur.G - 1, 0) End Function Private Function VarDir() Dim A As Double Dim C As Double C = random.Next(0, 2) A = Math.Pow(random.Next(0, 160000), 1.0 / 4.0) If C = 0 Then Return _Direction - 20 + A Else : Return _Direction + 20 - A End If End Function End Class
Partager