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 Class
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
Merci beaucoup et 1000fois d'avances !