INITIALISATION DE DIRECTDRAW

Dans ce tutoriel, nous couvrirons les bases de l'initialisation et de l'ouverture d'un écran DirectDraw.

Création Du Projet

Premièrement, vous devez créer un projet comme d'habitude, Le projet doit être du type Exe Standard.

Allez ensuite dans projet-references, et sélectionner "DirectX 7 For Visual Basic Type Librairy" [si elle ne figure pas dans la liste alors cliquez sur Parcourir et ensuite sélectionnez la dll nommée DX7VB.DLL]

Ajoutez dans votre projet une feuille qui servira de l'affichage DirectDraw et un module qui contiendra toutes les procédures et les déclarations des objets DirectX.

Déclarations des objets DirectDraw

Ouvrez la fenêtre de code du module: c'est là que nous allons mettre nos déclarations.

Tout d'abord il faut créer une nouvelle instance de la classe DirectX avec ce code:

Public dx As New DirectX7

Ensuite il faut déclarer l'objet DirectDraw qui nous servira pour toutes les manœuvres DirectDraw.

Public dd As DirectDraw7

Nous verrons plus tard qu'il y a encore d'autres objets que l'on devra déclarer afin de gérer l'affichage d'images sur l'écran ou encore afin de définir les modes...

Mode Plein Ecran

DirectDraw peut être initialisé en deux modes:
- Mode fenêtré: utilise la fenêtre que vous passez comme argument pour afficher l'écran DirectDraw
- Mode Plein Ecran: utilise tout l'espace de l'écran Windows [comme avec les écrans de veille], et se définit comme application prioritaire.

En mode plein écran, vous devez définir le type d'affichage: dimensions de l'écran + format de pixel. Vous pouvez définir par exemple l'affichage 640x480x16 ou encore l'affichage 800x600x32. Mais il faudra tout de même vérifier si ces différents modes d'affichages sont présents sur le système de l'utilisateur avant de les utiliser [nous verrons cela plus tard]. Passons au code, nous sommes toujours dans la fenêtre de code du module.

'Procédure d'entrée du programme
Sub Main()

'Gestion des erreurs: Trop Important
'NE JAMAIS OUBLIER
On Error GoTo ErrorTrap

  'Création de l'objet DirectDraw
  Set dd = dx.DirectDrawCreate("")
 
  'Définition des propriétés: Mode plein écran, Exclusif
  'permet le reboot (Alt+Ctrl+Del)
  dd.SetCooperativeLevel Form1.hWnd, DDSCL_FULLSCREEN Or DDSCL_EXCLUSIVE Or DDSCL_ALLOWREBOOT
 
  'Mode d'affichage 640x480x16,... le reste n'est pas
  'important
  dd.SetDisplayMode 640, 480, 16, 0, DDSDM_DEFAULT


  '... c'est pas terminé !

'TROP IMPORTANT: NE JAMAIS OUBLIER
Exit Sub
ErrorTrap:
End
End Sub

Vous avez sûrement remarqué que j'ai pris Sub Main() comme procédure d'entrée du programme. Il faut donc aller sur Projet-Propriétés, dans la liste "Objet de démarrage" sélectionner "Sub Main".
A noter aussi que ce mode est lié à la technique du Flipping que nous verrons bien sûr.

Mode Fenêtré

Avec le mode fenêtré, vous travaillez dans une fenêtre au style application Windows normale.

'Procédure d'entrée du programme
Sub Main()

'Gestion des erreurs: Trop Important
'NE JAMAIS OUBLIER
On Error GoTo ErrorTrap

  'Création de l'objet DirectDraw
  Set dd = dx.DirectDrawCreate("")
 
  'On règle DirectDraw au mode normal DDSCL_NORMAL
  'c-à-d fenêtré. Il s'executera dans la fenêtre Form1
  dd.SetCooperativeLevel Form1.hWnd, DDSCL_NORMAL
 
  '... C'est pas terminé !

'TROP IMPORTANT: NE JAMAIS OUBLIER
Exit Sub
ErrorTrap:
End
End Sub

A noter que le mode fenêtré est lié à la technique du Clipping...

Conclusion

Bien vous venez de découvrir les différents "modes d'affichage" de DirectDraw: Mode fenêtré, Mode Plein Ecran.
Mais je vous rappelle que dans le cas d'un jeu, c'est le mode Plein Ecran qui est couramment utilisé. Mais vous pouvez toujours combiner les deux modes dans vos applications.
Une autre remarque aussi très importante: notez que lorsque vous travaillez avec DirectDraw [Mode Plein Ecran surtout], une petite erreur dans le programme peut faire planter votre ordinateur. Donc veuillez toujours à ajouter la gestion d'erreur [On Error Goto...] dans chacune de vos procédure: ça vous évitera de perdre votre temps.

[Home] lienie.gif (941 octets)[Actualités]  [Trucs & Astuces] [Astuces Windows] [ActiveX-Ocx/Dll] [Articles] [Codes Sources] [VB Games] [Fichiers Sons] [Fichiers Icônes] [Programmes & Sources]  mailing.gif (910 octets)[Mailing-List] smiley.gif (359 octets)[Divers] about.gif (920 octets)[A Propos]