begin process at 2012 05 27 18:47:32
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

DirectX

 > MOTEUR 3D EN C++ AVEC DIRECTX 8.1 (GESTION SOURIS, CLAVIER, SON)

MOTEUR 3D EN C++ AVEC DIRECTX 8.1 (GESTION SOURIS, CLAVIER, SON)


 Information sur la source

Note :
8,33 / 10 - par 3 personnes
8,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :DirectX Niveau :Débutant Date de création :27/11/2003 Vu / téléchargé :8 785 / 1 135

Auteur : Galmiza

Ecrire un message privé
Site perso
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
J'ai recemment abandonné l'assembleur sur ti89 pour me lancer dans le C++ sur PC, donc j'ai deja de bonnes notions de programmation.
J'ai été tres surpris de voir a quel point il est facile de faire quelque chose de potable en peu de temps avec DirectX.

Voici mon premier programme en C++ avec Direct3D 8.1.
Vous remarquerez que certains passages ont été repris des exemples que j'ai pu trouver, mais je suis parti d'un projet totalement vide (mon programme n'est pas une source que j'ai modifier, seulement quelques copier-coller :-) ).

Les sources seront sans doute tres utiles pour les debutants qui cherchent les routines d'initialisation de Direct3D, DirectSound, DirectInput, ou comment activer le plein ecran; j'ai moi-meme pas mal galerer pour les trouver et encore plus pour que les linking se deroulent bien.



Il existe de nombreux bugs:

-si vous appuyer sur ALT-TAB, vous devrez faire un CTRL-ALT-SUPPR pour quitter le processus (c'est a cause du plein ecran mais je ne sais pas comment resoudre ce probleme, ni ceux qui suivent d'ailleurs...).

-Bien que sur mon PC le prog tourne a 300 FPS, lorsqu'on tourne autour d'un cube (strafe + souris), le rendu est laid. La souris n'est peut-etre pas assez precise.

-S'il manque un fichier *.bmp ou *.wav, une erreur a la fermeture est inevitable.


ATTENTION: je n'ai pas inclu les fichiers son (trop volumineux) et j'ai mis en commentaire tout ce qui permet de les charger et de les jouer.
Tel quel, le programme se compile bien et se lance bien.



Merci de dire ce que vous pensez de ces debuts et si possoble de m'aider.



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture COLLISION DE RECTANGLES 2D
Source avec Zip Source avec une capture EXEMPLES D'UTILISATION DES PIXELS SHADERS 2.0 AVEC DIRECTX 9...
Source avec Zip Source avec une capture 2D HARDWARE AVEC DIRECTX 9

 Sources de la même categorie

Source avec Zip Source avec une capture MP3 DX9 JOUER par f_l_a_s_h_b_a_c_k
Source avec Zip Source avec une capture EQUINOX VISUAL SON METER par f_l_a_s_h_b_a_c_k
Source avec Zip Source avec une capture FLEUR EN DELIRE! par f_l_a_s_h_b_a_c_k
Source avec Zip Source avec une capture DIREXCT X 9 D3D par f_l_a_s_h_b_a_c_k
Source avec Zip BLOP DIRECT X par f_l_a_s_h_b_a_c_k

Commentaires et avis

Commentaire de Funto66 le 28/11/2003 00:21:31

Bon, je ne veux pas relancer le débat, mais j'ai et j'aurai toujours une préférence pour OpenGL....:p
Ton prog est sympa, mais tu devrais rajouter la possibilité de faire bouger la caméra (ou alors j'ai pas trouvé comment on fait?).
Pour la prog sur TI89, j'avais fait un Hello World en C sur la mienne lol mais c'est tout, j'ai vu qu'il y a un moteur 3D pour ces calcs :)

Commentaire de MCRSTEPH le 28/11/2003 01:11:01

C'est quoi directx ? je debute en ordinateurs...
Je n'ai pas télécharger ta source... je connais pas ce truc , c'est pour les jeux non?
...Mouhahaha non je decone...
Je n'ai pas l'intention d'étudier dx , enfin pas pour le moment ..je prefere attendre la version 142.8 ....
Bon allez...comme je doit etre en train de te gonfler, je vais essayer de me ratraper.

PROBLEME DE ALT TAB AVEC UN FULLSCREEN ?
Tu m'as fais penser que je n'avais peut etre pas tester ca....alors je l'ai fait...et ca va bien...

Pour moi un Fullscreen c'est une fenetre sans barre de menus ni systeme, qui occupe tout l'ecran.
Avant d'afficher cette fenetre, je me reserve le droit de changer dynamiquement la resolution et le mode de couleurs de l'affichage.
je fais ca avec ma fonction WinSetDisplayMode:

void WinSetDisplayMode(int colorbits,int res_x,int res_y,int Freq)
{
DEVMODE mode;
EnumDisplaySettings(NULL,ENUM_CURRENT_SETTINGS,&mode);
mode.dmBitsPerPel=colorbits;
mode.dmPelsWidth = res_x;
mode.dmPelsHeight = res_y;
mode.dmSize=sizeof(mode);
mode.dmDisplayFrequency=Freq; // 60 70 72 75 85 ..
//
ChangeDisplaySettings(&mode,0);
};


colorbits = 16 ou 32  par exemple,  c'est la couleur.
res_x = resolution, 640 pour un 640x480.
res_y =  .....
Freq = fréquence en Hz, mais attention a pas mettre n'imp. en cas de doute modifier le code pour pas avoir a y toucher et laisser la frequence d'origine.
Dés que ma fonction a été appelée (winmain dans mon test), lecran passe dans le mode que jai choisi. Je creer alors ma fenetre sur toute la surface ecran.
-> + 40 tests de alt-tab -> aucun problemes   :)

a la sortie de ma boucle de messages, avant la fin de winmain, j'appelle alors ma fonction WinRestoreDisplayMode :

void WinRestoreDisplayMode(void)
{
DEVMODE mode;
EnumDisplaySettings(NULL,ENUM_REGISTRY_SETTINGS,&mode);
ChangeDisplaySettings(&mode,0);
};

Cette derniere rétablie le mode d'affichage d'origine...en se basant sur les infos du registres.

J'espere que ca peut t'aider.

Commentaire de Galmiza le 28/11/2003 21:08:56

Trop top ton programme, Galmiza :-0 .....

Bon j'arrete.

Funto66 -> Pour le deplacement de la camera, c'est comme dans les doom-like, q,s,d,z.
A propos de ti89, j'ai fait un moteur3D avec textures, mais pas de clipping3D (mais 2D), ni de z-buffer. Il est sur Yaronet (section projet) ou j'ai le meme psudo qu'ici. Je ne le continue pas car j'ai decouvert ...... le C++ sur PC !

MCRSTEPH -> Vu que je sort de l'assembleur, je ne suis pas encore tres habitué a utiliser des fonctions deja toutes faites... mais je vais m'habituer. Chez moi, quand je fais ALT TAB, la barre des taches apparait, les "signets" changent de couleur quand la souris passe dessus (normal quoi) mais le reste de l'ecran semblent etre mobilisé par mon programme....

Commentaire de MCRSTEPH le 28/11/2003 22:34:29

Il y a beaucoup de fonctions "déja toute faites"  lol rassemblées dans ce que lon apelle l'Api Win32.  L'api win32 est le plus bas niveau de controle pour programmer en environnement windows. c'est le plus puissant quoi...
Il vaut mieux l'utiliser...pour dev windows.

Commentaire de Funto66 le 29/11/2003 15:14:20

Ben je savais pas qu'il y avait plusieurs moteurs 3D pour TI89 :)
Tu sais, tu peux toujours le continuer en même temps que la prog PC ;)
yAronet est un super forum ! Y'a même un gars qui écrit un autre compilo C que TI-GCC il me semble :)

Pour l'API Win32, tu l'as déjà utilisée en fait lol, c'est toutes les fonctions qui sont déclarées dans windows.h (et windowsx.h éventuellement).

Commentaire de Galmiza le 30/11/2003 12:08:05

J'avais deja posté un message (sans reponse, sniff.. ) a propos du son dans ce programme:
En fait, lorsque qu'on clique sur le bouton gauche de la souris, un bruit de tir d'une kalashikov est lancé.
Le son est prealablement chargé dans un buffer et la lecture est lancé au moment opportun.
Mais, il existe un temps assez aleatoire et genant entre le moment ou l'ordre de la lecture est donné et celui du debut de la lecture.
Cette difference de temps grandit avec la durée de deroulement du programme.
Avez-vous eu deja le meme probleme ?
Les routines de son sont presentes dans le code source, seules la destruction, la creation, le chargement et le lancement des sons sont mis en commentaires.


Sinon, pour le probleme de la souris, j'ai joué a Hitman2 où la souris est bien plus precise.

Commentaire de djl le 30/11/2003 23:23:52

pourquoi tu utilise pas sndSoundPlay, c'est plus simple

Commentaire de Funto66 le 02/12/2003 19:26:23

Moi j'utilise FMOD (http://www.fmod.org, tutoriaux très bien faits à http://fmod.apinc.org/) qui est très simple d'utilsation et gratuite (et portable mais tu t'en fous vu DirectX ;)).
J'ai fait un jeu avec cppdupdup34 qui l'utilise et ça marche très bien à http://www.cppfrance.com/code.aspx?ID=11026 si tu veux un exemple ;)

Commentaire de Saros le 06/12/2003 16:31:21

Déjà, c'est assez bien fait.... Bon c'est vrai qu'une fois un moteur 3D programmé sur 68K passer sur un PC ça doit paraître franchement désobligeant (personnellement j'ai fait un RayTracer en Basic sur TI92+ mais je l'ai jamais balancé sur le Net, on devinera pourquoi...), mais bon... franchement c'est bien fait...
Le prog doit tourner sur ma machine aux alentours de 600 Fps, je sais pas trop, parce que l'animation est vraiment rapide.
Le bug de Alt-Tab... C'est vrai que c'est un peu gênant, je saurais pas te dire quoi faire vu que ça fait qu'une semaine que je fais du C++ (encore du VB ça va, mais là) :) Tu devrais demander à un certain Geff, il m'avais plutot aidé dans mes projets de moteurs 3D, il saura sûrement te dire. En tout cas, ton programme est fonctionnel, >9/10
Saros

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales