![]()
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 manuvres 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]
[Actualités]
[Trucs
& Astuces]
[Astuces Windows]
[ActiveX-Ocx/Dll]
[Articles]
[Codes Sources]
[VB
Games]
[Fichiers Sons]
[Fichiers Icônes]
[Programmes & Sources]
[Mailing-List]
[Divers]
[A Propos]