Ce n'est pas un jeu, juste un simulateur de gravite.
Cela peut aider pour ceux qui concoivent ce genre de jeux ...
Source / Exemple :
Private Type G_POINT
x As Single
y As Single
End Type
Dim acceleration As Boolean
Dim orientation As Single
Dim vitesse_angulaire As Single
Dim vitesse_centre_gravite As G_POINT
Dim centre_gravite As G_POINT
Const pi_180 As Single = 3.1415926535897 / 180
Const puissance_moteur As Single = 0.1
Const force_gravite As Single = 0.05
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyUp
acceleration = True
Case vbKeyLeft
vitesse_angulaire = 0.5
Case vbKeyRight
vitesse_angulaire = -0.5
End Select
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyUp
acceleration = False
Case vbKeyLeft
vitesse_angulaire = 0
Case vbKeyRight
vitesse_angulaire = 0
End Select
End Sub
Private Sub Form_Load()
vitesse_angulaire = 0
vitesse_centre_gravite.x = 0
vitesse_centre_gravite.y = 0
acceleration = False
orientation = 90
centre_gravite.x = Me.ScaleWidth / 2
centre_gravite.y = Me.ScaleHeight / 2
gravite = 0
End Sub
Private Sub Timer1_Timer()
Do
' --------------------------------------------------------------------
' CALCUL DES FORCES APPLIQUEES A L'OBJET
' --------------------------------------------------------------------
'SI ON APPUIE SUR L'ACCELERATEUR, LA VITESSE DU CENTRE DE GRAVITE AUGMENTE
If acceleration Then
vitesse_centre_gravite.y = vitesse_centre_gravite.y + puissance_moteur * Sin(orientation * pi_180)
vitesse_centre_gravite.x = vitesse_centre_gravite.x + puissance_moteur * Cos(orientation * pi_180)
End If
vitesse_centre_gravite.y = vitesse_centre_gravite.y - force_gravite
'SI ON APPUIE SUR GAUCHE OU DROITE, L'OBJET SE MET EN ROTATION
If vitesse_angulaire <> 0 Then
orientation = orientation + vitesse_angulaire
If orientation < 0 Then orientation = orientation + 360
If orientation >= 360 Then orientation = orientation - 360
End If
' --------------------------------------------------------------------
' APPLICATION DES FORCES SUR L'OBJET
' --------------------------------------------------------------------
' ON APPLIQUE LE DEPLACEMENT DU A LA VITESSE DU ENTRE DE GRAVITE
centre_gravite.x = centre_gravite.x + vitesse_centre_gravite.x
centre_gravite.y = centre_gravite.y - vitesse_centre_gravite.y
' --------------------------------------------------------------------
' AFFICHAGE DE L'OBJET
' --------------------------------------------------------------------
'CENTRE DE GRAVITE
Line1.X1 = centre_gravite.x + 20 * Cos(orientation * pi_180)
Line1.Y1 = centre_gravite.y - 20 * Sin(orientation * pi_180)
'SOMMET DU VAISSEAU
Line1.X2 = centre_gravite.x + 10 * Cos((orientation - 135) * pi_180)
Line1.Y2 = centre_gravite.y - 10 * Sin((orientation - 135) * pi_180)
'SOMMET DU VAISSEAU
Line2.X1 = centre_gravite.x + 20 * Cos(orientation * pi_180)
Line2.Y1 = centre_gravite.y - 20 * Sin(orientation * pi_180)
'AILE GAUCHE
Line2.X2 = centre_gravite.x + 10 * Cos((orientation + 135) * pi_180)
Line2.Y2 = centre_gravite.y - 10 * Sin((orientation + 135) * pi_180)
Sleep 10
DoEvents
Loop
End Sub
Conclusion :
Line1 et Line2 sont des composants de base que vous trouverer facilement
Il y a aussi besoin d'un timer avec un interval non nul nommé par defaut Timer1.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.