Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

2D HARDWARE AVEC DIRECTX 9


Information sur la source

Catégorie :DirectX Classé sous : directx, vidéo, sprite, hardware, 2d Niveau : Débutant Date de création : 01/01/2005 Date de mise à jour : 22/07/2006 14:16:32 Vu / téléchargé: 10 414 / 1 510

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Vous voulez faire de la 2D avec DirectX en exploitant à fond votre carte vidéo ? Ce code est pour vous !
Une classe pour le moteur 2D et une classe de sprite.
La classe du moteur 2D permet une manilupation facile des sprites.
 

Conclusion

Voila, maintenant plus d'excuse pour ne pas vous lancer dans un RPG ou un mario-like !
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

01 janvier 2005 15:48:23 :
Ajout de l'exe
01 janvier 2005 19:11:24 :
Optimisation de la boucle de rendu.
21 juillet 2006 00:17:05 :
Portage de la source pour compilation avec le SKD de DirectX 9 avril 2006 Modification de l'utilisation de la fonction Draw de la classe sprite de DX Modification de la gestion de la souris
21 juillet 2006 00:27:21 :
Oups, modification du passage des arguments dans la fonction RenderSprite.
22 juillet 2006 14:16:32 :
Rééecriture de la source. Création de classes pour implentation plus facile dans d'autres projets.

Commentaires et avis

signaler à un administrateur
Commentaire de gimli123 le 01/01/2005 17:14:54

Salut elle est coul ta source ;)
Mais heu j'ai un pb à la compilation :

------ Début de la génération : Projet : Sprite, Configuration : Debug Win32 ------

Compilation...
main.cpp
c:\documents and settings\propriétaire\bureau\cppfrance_source_28545\sprite\main.cpp(198) : error C2660: 'ID3DXSprite::Draw' : la fonction ne prend pas 7 arguments

Le journal de génération a été enregistré à l'emplacement "file://c:\Documents and Settings\Propriétaire\Bureau\cppfrance_source_28545\Sprite\Debug\BuildLog.htm"
Sprite - 1 erreur(s), 0 avertissement(s)

@+++++

signaler à un administrateur
Commentaire de Galmiza le 01/01/2005 17:58:28

C'est assez bizarre en effect.

Selectionne "Draw" clique droit dessus puis sur "Go to definition Of Draw". Il y a plusieurs classes qui utilisent une fonction nommée "Draw", mais ça m'étonnerait que le compilateur se plante de fonction (apparement nan d'après le rapport de bug...).

As-tu les bons fichiers headers à inclure ? Il y a peut-être des versions différentes...

Au pire, essaye de mettre un nombre différent de paramètres pour voir ce qu'il accepte comme nombre.

signaler à un administrateur
Commentaire de gimli123 le 01/01/2005 18:01:50

Ba chai pas car pourtant j'ai dl le sdk de directx la version summer 2004

signaler à un administrateur
Commentaire de gimli123 le 01/01/2005 18:04:52

Ha et au faite c'est quoi cette lib ?
libci.lib
Pour plusieurs sources que j'ai essayer de complier et ba le compilo la trouve pas @++++

signaler à un administrateur
Commentaire de Galmiza le 01/01/2005 18:20:46

Désolé, je ne connais pas cette lib.

Dans MSDN il y a:

http://msdn.microsoft.com/library/default.asp?url=/archive/en-us/directx9_c_summer_03/directx/graphics/reference/d3dx/interfaces/id3dxsprite/draw.asp

et

http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c/directx/graphics/reference/d3dx/interfaces/id3dxsprite/draw.asp

Donc nos 2 versions de DX sont différentes.

Mais je ne sais pas si il est possible de resoudre le probleme... il faut attendre les pros :D

signaler à un administrateur
Commentaire de Xs le 01/01/2005 18:45:54

Avec un code aussi simple, tu pourrais au moins montrer comment récupérer un device aprés alt-tab.

"2D OPTIMISÉE AVEC DIRECTX"
Mouais quand j'ai lu la source ça m'a fait un choc quand même. C'est sûr, elle est fonctionelle et propre, mais alors niveau optimisations, y'a du boulot. En effet, dans ta fonction render, tu déclare plein de variables à chaque frame, tu fais plusieurs appels à des fonctions telles que timeGetTime (c'est mieux d'avoir un temps unique dans une frame...)...

Enfin, je serais toi j'enléverais le "OPTIMISEE" du titre.
Sinon, le reste est correct.

cordialement

signaler à un administrateur
Commentaire de Galmiza le 01/01/2005 18:55:55

Merci pour vos commentaires !

Xs > Je vois ce que tu veux dire par "optimisée".
En fait l'unique avantage de cette source est de montrer le fonctionnement de la fonction Draw.
J'ai dit optimisé car la carte vidéo fait quasiment tout  le travail.
Mais ok, je vais optimiser le code... :D (tant qu'à faire)

Sinon, je n'ai pas de probleme avec le Alt-Tab. J'avais des problèmes avec le device à cause de Alt-Tab quand j'utilisais DirectInput.

signaler à un administrateur
Commentaire de gimli123 le 01/01/2005 19:47:31

Salut ba moi j'comprend pas, j'ai installé la dernière version qui summer 2004, sur une des pages que t'a montré c'était summer 2003 ... plus qu'a attendre les pros alors :D
@++

signaler à un administrateur
Commentaire de Vb6Malade le 23/01/2005 15:57:49

salut moi j'ai une erreur a :
return sqrtf(pV->x * pV->x + pV->y * pV->y);
j'ai Borland cpp 6 builder
avec le sdk de summer 2004(enfin je pense l'avoir)
ca me met:
[C++ Erreur] d3dx9math.inl(1578): E2268 Appel à une fonction non définie 'sqrtf'
Stp aide moi et ps si quelq'un a le sdk en francais ca m'interresse VOILA...

signaler à un administrateur
Commentaire de greg le grand le 13/07/2005 12:54:51


AVIS a tous les utilisateurs de PC pas très puissant ne lancer pas le .exe ,je viens de le faire et ca bloque TOUT ca s'arrange rapidement mais évitait de le faire !

signaler à un administrateur
Commentaire de Amanobuo le 10/05/2006 18:44:46

J'ai la solution pour la fonction draw,
comme le disait Galmiza, il y a eu une update, dans directx8 la fonction draw prendait 7 parametres et depuis directx9 elle n'en prend que 5, il y a l'echelle et l'angle en moins, d'ailleurs j'attire votre attention sur la remarque de la doc du SDK April2006 update :
Remarks
To scale, rotate, or translate a sprite, call SetTransform with a matrix that contains the scale, rotate, and translate (SRT) values, before calling ID3DXSprite::Draw. For information about setting SRT values in a matrix, see Matrix Transforms.
C'est me jour de bonté alors je vais traduire :
Remarque
Pour l'echelle, la rotation ou la translation d'un sprit, appeller SetTransform avec une matrice qui contient les valeurs de l'echelle, de la rotation et de la translation (SRT) avant d'appeller ID3DXSprite::Draw. Pour des information a propos de l'initialisation des veleurs d'un SRT dans une matrice, voir Matrix Transforms

Mais j'utilise directx9 me diriez vous ! pourtant je met 7 parametres ! Mais tout depend de la librairie que vous importez dans votre projet, si vous incluez #include <d3dx8.h> ou <D3dx8 core.h> vous avez "l'ancienne" fonction avec 7 paremetres mais si vous incluez <d3d9.h> ou <D3dx9core.h> vous avez la fonction avec 5 parametres.
Pour etre vraiment fixé tout de suite, faite clic droit sur draw et Attendre la définition, et voyez quel fichier il va chercher la definition !

signaler à un administrateur
Commentaire de DevMod le 20/07/2006 13:33:19

C'est frustrant, je débute en DirectX, cette source semble contenir tout ce qu'il faut pour m'apprendre à utiliser DirectX avec les sprites, mais je n'arrive pas à effectuer les modifications pour la faire fonctionner avec le SDK d'avril 2006...

Serait-il possible de le mettre à jour ?

signaler à un administrateur
Commentaire de Galmiza le 21/07/2006 00:31:21

Voila, voila, la source peut être compilée avec DX9 version avril 2006.
Merci j'avais completement oublié ;) !

Vu la complexité de la nouvelle fonction Draw (moins de paramètres certes mais utilisation ultra chiante de matrice), j'ai fait une fonction qui prend de paramètres intuitifs.

Have fun !

Vb6Malade> essaye d'inclure math.h qui contient la définition de la fonction sqrtf

signaler à un administrateur
Commentaire de DevMod le 21/07/2006 09:27:43

Ah merci :p

Je viens juste de réussir à utiliser les sprites, je vais regarder ta source de très près histoire de voir les idioties que j'ai pu faire en codant ^^

signaler à un administrateur
Commentaire de Galmiza le 21/07/2006 21:31:27

La source est assez pourrie actuellement.
Je vais la refaire pour demain.
Création d'un classe CEngine2D avec gestion de ressources comme Sprites et Texture.

signaler à un administrateur
Commentaire de DevMod le 22/07/2006 10:26:51

Bon ça va j'ai à peu près la même chose.
Pour les matrices, le plus simple est d'utiliser D3DXMATRIX2dTransformation (un truc de ce genre, ce ne sera pas dur à trouver dans la doc) qui permet de modifier à la main les paramètres de la matrice.

signaler à un administrateur
Commentaire de Galmiza le 22/07/2006 14:23:33

Hop une autre MAJ.
Le code n'est plus réduit au minimum mais vous pouvez facilement utiliser les classes dans vos projets.
N'hésitez pas à proposer des améliorations !

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

quads transparents avec directx 9 [ par Adeon ] Salut! j'ai un probleme, je voudrai superposer deux quads ( avec le RHW activ&#233; ). le probleme c'est que la transparence ne marche pas pourtant : Directx 8 et DDRAW - JPEG [ par tazkeum ] J'ai utilisé DirectX 8 pour charger du JPEG par D3DXCreateTextureFromFile.Mais j'ai un systeme d'animation 2D qui utlise DirectDraw (DirectX 7 -LPDIRE 2d sprite engine [ par StackDust ] Salut les coders,J'aurais besoin d'un peu d'aide pour creer une simple animation d'un sprite sur un fond.J'ai deja creer les classes necessaires(en c+ Fenetre vidéo directx [ par elflink ] bonjour à tous,j'ai créé un logiciel beneficiant d'une couleur de transparence (avec la fonction prévue à cet effet de user32.dll). Néanmoins, lorsque Sprite qui ne s'affice pas help!! [ par olivierpot2 ] Bonjour à tous,Je débutes avec c++/directx, et j'essaye d'afficher une image toutes bêtes. Apparement l'initialisation de directX et ok, mais rien ne Brouillard 2d en directx/C++ [ par Luwy ] Bonjour. Je suis en plein développement d'un petit shooter en 2d en C++ et Directx. Je voudrais donné un ambiance lugubre a un endroit et pour se fair PyQT et DirectX [ par alvi35 ] Bonjour, J'ai réalisé une IHM avec PyQT sous Windows dans laquelle j'ai, entre autre, un QWidget destiné à jouer une vidéo capturée grâce à DirectX. L ajouter un objet 3D dans une scène vidéo [ par molka1 ] salut,je suis en train de développer une application qui permet d'ajouter un objet 3D dans une vidéo compressé en MPEG-2 en utilisant le VisualStudioC Capture vidéo avec DirectShow [ par lectpe ] Bonjour à tous :J'aimerai pouvoir capturer non pas une vidéo mais une succession d'image provenant d'une webcam grâce à DirectShow mais j'ai cherché s Transfert vidéo sur PC [ par ecr ] Bonjour,Je possède un camescope Sony Handycam à disque dur  DCR SR 32 E. Je souhaiterais transférer la vidéo sur le PC sans passer par la Handycam que


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,998 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.