Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 22 juil. 2006 à 14:23
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 !
DevMod
Messages postés3Date d'inscriptionlundi 10 juillet 2006StatutMembreDernière intervention22 juillet 2006 22 juil. 2006 à 10:26
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.
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 21 juil. 2006 à 21:31
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.
DevMod
Messages postés3Date d'inscriptionlundi 10 juillet 2006StatutMembreDernière intervention22 juillet 2006 21 juil. 2006 à 09:27
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 ^^
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 21 juil. 2006 à 00:31
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
DevMod
Messages postés3Date d'inscriptionlundi 10 juillet 2006StatutMembreDernière intervention22 juillet 2006 20 juil. 2006 à 13:33
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 ?
Amanobuo
Messages postés65Date d'inscriptionmardi 24 février 2004StatutMembreDernière intervention11 décembre 2006 10 mai 2006 à 18:44
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 !
greg le grand
Messages postés9Date d'inscriptionlundi 11 juillet 2005StatutMembreDernière intervention20 décembre 2005 13 juil. 2005 à 12:54
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 !
Vb6Malade
Messages postés43Date d'inscriptionmercredi 25 février 2004StatutMembreDernière intervention 1 septembre 2008 23 janv. 2005 à 15:57
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...
gimli123
Messages postés78Date d'inscriptionsamedi 18 septembre 2004StatutMembreDernière intervention 5 janvier 2007 1 janv. 2005 à 19:47
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
@++
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 1 janv. 2005 à 18: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.
cs_Xs
Messages postés368Date d'inscriptionmercredi 14 novembre 2001StatutMembreDernière intervention 1 septembre 2008 1 janv. 2005 à 18:45
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
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 1 janv. 2005 à 18:20
Mais je ne sais pas si il est possible de resoudre le probleme... il faut attendre les pros :D
gimli123
Messages postés78Date d'inscriptionsamedi 18 septembre 2004StatutMembreDernière intervention 5 janvier 2007 1 janv. 2005 à 18:04
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 @++++
gimli123
Messages postés78Date d'inscriptionsamedi 18 septembre 2004StatutMembreDernière intervention 5 janvier 2007 1 janv. 2005 à 18:01
Ba chai pas car pourtant j'ai dl le sdk de directx la version summer 2004
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 1 janv. 2005 à 17:58
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.
gimli123
Messages postés78Date d'inscriptionsamedi 18 septembre 2004StatutMembreDernière intervention 5 janvier 2007 1 janv. 2005 à 17:14
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)
22 juil. 2006 à 14:23
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 !
22 juil. 2006 à 10:26
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.
21 juil. 2006 à 21:31
Je vais la refaire pour demain.
Création d'un classe CEngine2D avec gestion de ressources comme Sprites et Texture.
21 juil. 2006 à 09:27
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 ^^
21 juil. 2006 à 00:31
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
20 juil. 2006 à 13:33
Serait-il possible de le mettre à jour ?
10 mai 2006 à 18:44
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 !
13 juil. 2005 à 12:54
23 janv. 2005 à 15:57
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...
1 janv. 2005 à 19:47
@++
1 janv. 2005 à 18:55
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.
1 janv. 2005 à 18:45
"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
1 janv. 2005 à 18:20
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
1 janv. 2005 à 18:04
libci.lib
Pour plusieurs sources que j'ai essayer de complier et ba le compilo la trouve pas @++++
1 janv. 2005 à 18:01
1 janv. 2005 à 17:58
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.
1 janv. 2005 à 17:14
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)
@+++++