Bien arreter directX

cs_Finality Messages postés 76 Date d'inscription samedi 28 janvier 2006 Statut Membre Dernière intervention 22 janvier 2009 - 14 janv. 2008 à 20:39
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 14 janv. 2008 à 21:23
Bonjour tout le monde,

je suis en train de créer une application VB.Net avec directX 9. Mon application est bien avancée mais il me reste un problème  sur lequel je seche : comment bien arreter mon application...

En effet, Mon application se compose d'une Form et d'une classe JEU qui contient tout mon code directX.
J'aimmerais que quand l'utilisateur appuit sur la touche Echap, il arrete et quitte l'application.

Pour cela voilà le code que je met dans ma Form:
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As _
  System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
   If e.KeyCode = Keys.Escape Then
      Me.Close()
   End If
End Sub

Et voilà le code principale de ma classe JEU:
Public Sub Game()
   InitialiserVariables()
   InitialiserSurfaces()
   Musique.Play()
   Do
      Animation()
      TestClavier()
      EnnemisEtTirs()
      Collisions()
      Afficher()
      Application.DoEvents()
   Loop 
End Sub

Le problème est que quand j'appuit sur Echap, l'application se termine bien mais pas une erreur...

Quelqu'un pourriat-il me dire comment régler ce probleme s'il vous plait?

Merci pour votre aide
Cordialement
Kevin PERRIAT

1 réponse

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
14 janv. 2008 à 21:23
Do
...
Loop

pas de condition de sortie ici...

Private mbMustQuit As Boolean

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As _
System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
mbMustQuit = True
End If
End Sub

Et voilà le code principale de ma classe JEU:

Public Sub Game()
InitialiserVariables()
InitialiserSurfaces()
Musique.Play()
mbMustQuit = False
Do
Animation()
TestClavier()
EnnemisEtTirs()
Collisions()
Afficher()
Application.DoEvents()
Loop Until mbMustQuit
Me.Close()
End Sub



en passant, remplace ton Application.DoEvents par un meilleur controle des FPS, pour que ton jeu tourne de manière identique sur chaque poste
0