ANIMATION DE FEU (EN DIRECTX)

cs_slayer Messages postés 202 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 18 mars 2008 - 8 déc. 2003 à 10:06
lucky2222 Messages postés 92 Date d'inscription dimanche 14 juillet 2002 Statut Membre Dernière intervention 2 octobre 2006 - 25 mars 2004 à 19:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/18526-animation-de-feu-en-directx

lucky2222 Messages postés 92 Date d'inscription dimanche 14 juillet 2002 Statut Membre Dernière intervention 2 octobre 2006
25 mars 2004 à 19:09
merci!
je ne metise pas encore le directx, mais je pense qu'avec un mixte des deux, il sera possible de faire une petite boule qui ne prend pas toute la puissance du pc afin de pouvoir ajouter les autres planette du systeme!
effectivement, il ne faudrai pas que ca saccade!
je me demande si je n'aurrai pas interret a faire un effet de flame que sur la circonferance d'un disque! mais encore la, j'ai encore beaucoup a me pencher sur le pb! si quelqu'un a une idee sur le truc, qu'il n'esite pas!
merci a tous
BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
25 mars 2004 à 18:15
oui effectivement c'est assez ressemblant, et vraiment plus efficace. Je vais l'etudier... mais moi je n'ai pas d'exemple comme ca dans mon sdk :'(... dommage...

Bon bah lucky2222 je te souhaite bonne chance dans ta boulle de feu... :)
VeRs_iOn Messages postés 22 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 26 mars 2004
25 mars 2004 à 13:26
lucky2222 : j'aimerai bien savoir où t'as vu une insulte...bien sûr que si je mets une source qui n'est pas de moi je le mentionnerai, et à mon avis il est tout à fait necessaire d'incendier les #$%*! de voleurs de sources, qui s'approprient des sources auxquelles ils ne comprennent rien juste pour en retirer un peu de gloire...
ceci dit tel n'est pas le cas de bumpman, qui, s'il s'est inspiré de la source SDK (ce qui est possible), a en tout cas compris ce qu'il faisait...je passe gentiment sur ton délire sur la technologie asiatique

quand à la source, je la mets à disposition, et vous pourrez vous-même constater que même en déployant beaucoup de mauvaise foi, il n'est pas possible de ne pas voir la ressemblance frappante entre les deux : http://www.vbfrance.com/code.aspx?ID=21472
vr3h Messages postés 164 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 9 octobre 2006
25 mars 2004 à 11:51
Lucky c pas bien compliqué avec DX7, quand tu initialise ton objet DirectDraw, tu donnes les parametres daffichage, dont le nombre de bits sur leskels seront codes les pixels, dc si tu passes 32, tas k mettre 8 a la place ^^

exemple issu du code ici present :
dd.SetDisplayMode sx, sy, 32, 0, DDSDM_DEFAULT
à remplacer par :
dd.SetDisplayMode sx, sy, 8, 0, DDSDM_DEFAULT
vr3h Messages postés 164 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 9 octobre 2006
25 mars 2004 à 11:47
Vers_ion, tu peux m'envoyer le code source dont tu parles stp ? il minteresse bcp
lucky2222 Messages postés 92 Date d'inscription dimanche 14 juillet 2002 Statut Membre Dernière intervention 2 octobre 2006
25 mars 2004 à 10:14
voila!!! ca fini par etre constructif l'histoire! rien ne sert de gueller, mais apporter des solutionset des astuces, c'est quand meme mieux!
remarque qui si tu as réellement une source plus rapide que celle ci, VeRs_iOn, pourquoi ne pas en faire profiter tout le monde (en pressisant toute fois, qu'elle n'est pas de toi bien sur, sinon, il y aura bien quelqu'un qui comme toi se permettra de t'insulter!)

tu parles aussi de faire tourner le prog en 8 bis au lieu de 32! ok, mais quelle est la ligne de commende qui permettra de basculler le prog ainsi!

perso, je ne suis pas un pro de la prog, je viens ici pour apprendre des astuces! l'origine de la source originale , c'est bien de le savoir, mais si le remix est mieux, ou bien detaillé afin de progresser, j'aime autant!
il suffit de voir la tecnologie asiatique qui depuis bien longtemps reprennait des les technologies europeenes et les on amelioré! c'est ca le progret! et pourtant personne ne les insulte les asiatiques, voir meme courrent pour acheter leur matos car moins cher et aussi fiable!
bon ici le but theorique n'est pas l'argent, mais bien de partager et d'evolué!
en ce qui conserne cette source, je suis interressé par toutes ameliorations et astuces la concernant!
merci a tous! et continuer a etre tous constructifs!
(n'oubliez pas de bien commenter car je suis vraiment un gros nulosse en prog mais qui desir progresser alors je compte sur vous pour avancer sans guerre!
Lucky2222
VeRs_iOn Messages postés 22 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 26 mars 2004
25 mars 2004 à 09:42
et ben je vois que 2 explications : soit t'as mal cherché, soit il n'y est que dans certaines versions du SDK (le mien est sur CD)

en tout cas j'ai vérifié, et il y a bien un exemple qui s'appelle fire.vbp, et dont le résultat ressemble comme deux gouttes d'eau à celui du programme de notre ami, sauf que la source du SDK est 15 fois plus rapide....

ceci dit, vérification faite, il semble que les deux codes n'aient que peu d'éléments communs (mais y'en a quand même), alors hasard ou pas, je ne sais pas...j'espère vraiment que ce ne soit que le fruit du hasard, mais bon c'est quand même troublant de ressemblance

bon, supposons que ce ne soit qu'un simple hasard : à ce moment là je peux te donner un truc pour multiplier la vitese de ton programme :
tu travailles avec une palette de 256 couleurs, alors pas la peine de faire tourner ton programmme en 32 bits, fais le en 8 bits...
à ce moment là tu peux traiter l'image non plus en utilisabt setlockedpixel, mais en faisant un getlockedarray, ce qui t'amenera à travailler sur un tableau de pixels...y'a vraiment moyen de gagner de manière très importante en vitesse
vr3h Messages postés 164 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 9 octobre 2006
25 mars 2004 à 07:54
Vers_ion, dsl mais jai commencé avec DX7 et son sdk, et je ne me rappelle pas du tout d'un exemple comme celui là dsl
BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
24 mars 2004 à 23:28
"que l'original" ? ca cache quoi? XD
VeRs_iOn Messages postés 22 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 26 mars 2004
24 mars 2004 à 21:21
oui c'est bien ce que je pensais...tu te fous PAS DU TOUT de la gueule du monde alors, et ta source ne mérite PAS DU TOUT 1/10 pour être 10 fois plus lente que l'originale...alors tout va bien ;)
BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
24 mars 2004 à 18:36
Hahahahahahaha t'inquiete pas il N'Y A PAS DU TOUT, mais alors PAS DU TOUT un exemple comme ca, encore moins du feu. donc détrompe toi! ;)
VeRs_iOn Messages postés 22 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 26 mars 2004
23 mars 2004 à 20:22
ça me rapelle furieusement un des exemples fournis avec le SDK de directX 7...je l'ai plus alors je peux pas comparer, mais bon l'effet est quasi-identique, voire identique, sauf que du texte se mélange peu à peu aux flammes...ça doit s'appeler simple fire example ou quelque chose comme ça...
BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
15 mars 2004 à 17:23
bon... je répond a ta premiere question: le pixel blanc est le centre de ta boule.

TRES BONNE NOUVELLE POUR TOI! : J'ai pu trop de boulot alors je vais voir ;)
lucky2222 Messages postés 92 Date d'inscription dimanche 14 juillet 2002 Statut Membre Dernière intervention 2 octobre 2006
15 mars 2004 à 14:42
je suis desolé, je n'arrive pas a modifier ta source pour en faire une boule de feu! je ne vois pas ou dans la source il faut ajouter un pxel blanc et quelle ligne il faut retirer!
j'ai beau faire defiler pas a pas ta source, je n'arrive pas a reperer les variables utilisé!
pas grave, je ferai mon soleil autrement!
merci quand meme des expliquations!
BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
14 mars 2004 à 11:44
ben justement t'a pas besoin de t'embeter a tracer les rayons. comme je le disais plus haut, un seul pixel blanc suffit a diffuser les couleurs.

1 - tu fout un pixel blanc ou tu veux, le flou se charge de faire une boule.
2 - tu diminue au augmente la consummation pour que t'a boule soit plus ou moins grande
3 - en revanche, tu peut modifier la fonction de hasard pour faire des irrégularité plus accentuées, ou a certains moments.
4 - tu retire le déplacement des flammes vers le haut biensur.

et c'est bon!
lucky2222 Messages postés 92 Date d'inscription dimanche 14 juillet 2002 Statut Membre Dernière intervention 2 octobre 2006
13 mars 2004 à 23:44
en fait, pour ma boule de feu, voici comment je trace les rayons!

Function Soleil()
Form1.Show
Dim Rayon As Integer
Rayon = 250 'Text1.Text 'longueur
b = Form1.Height / 2 'centre vertical de la form
a = Form1.Width / 2 'centre horizontal de la form
coul = &H80FFFF 'couleur jaune
Form1.Circle (a, b), (250), coul
longueur = 3 'longueur du rayon
For h = 0 To 60
c = a + (Sin(h / 9.55) * (Rayon * 1.2))
d = b - (Cos(h / 9.55) * (Rayon * 1.2))
e = a + (Sin(h / 9.55) * (Rayon * longueur))
f = b - (Cos(h / 9.55) * (Rayon * longueur))

Form1.Line (e, f)-(c, d), coul
Next h
End Function

comment faire pour que les flammes suive ces rayon du centre vers l'exterieure?
BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
13 mars 2004 à 22:54
mhh? j'ai pas testé mais le pixel blanc produit un flou, qui produit un flou qui produit un flou etc... donc une boulle. tu peut retirer le déplacement vers le haut et je dirais que c'est bon.... ptet diminuer la consummation.... mais je pense que ca marcherait non?
lucky2222 Messages postés 92 Date d'inscription dimanche 14 juillet 2002 Statut Membre Dernière intervention 2 octobre 2006
13 mars 2004 à 12:32
j'ai pas trop bien compris! tu m'en excuse j'espere! mais ce que je voudrai faire, c'est une boulle de feu au centre de l'ecran avec tes jolie flammes a la circonferance!

le pixel blanc est a ajouter si on desir effectuer une boule de feu dans tes flames qui ont comme origine le bas de l'ecran si j'ai bien compris!

mais la, je voudrai donner comme origine aus flammes un cercle qui se trouverai au centre de l'ecran! donc il dois falloir donner comme dirrection aux flammes des rayons et non plus des droites verticales

tu vois ce que je veux dire?

en fait, ce que je n'ai pas capté a la source pour l'appliquer au "soleil", c'est la partie de prog qui genere le feu sur un seul ligne!

une fois cette partie du prog compris, il suffit de l'appliqué soit sur les verticales aillant comme orrigine le bas de l'ecran, ou alors dans mon cas, cette ligne serai un rayon aillant comme origine la bordure d'un cercle!

mon gros probleme de compréention vient de mes competances avec directx, c'est la premier fois que je me panche sur le probleme!

merci ! (encore un os a ronger ;-))))
BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
12 mars 2004 à 17:14
hé ben pour obtenir une boulle de feu, c'est assez simple! il suffit de mettre un pixel en blanc (255 sur la palette), a la 2em étape, qui est le centre de la boulle de feu. les flammes se feront dans les etapes d'apres.
lucky2222 Messages postés 92 Date d'inscription dimanche 14 juillet 2002 Statut Membre Dernière intervention 2 octobre 2006
12 mars 2004 à 11:55
c'est super jolie! justement, en parlant de'ecran de veille! serait il possible de modifier cette source (oui c'est possible!!!) pour obtenir une boule de feu! jusque la, oui c'est toujours possible! mais quels parrametre devrais je modifier pour obtenir cette boulle?

boulle de feu pouvant representer le soleil!

car je cherche a faire un ecran de veille avec un systeme solaire et donc, pas besoin qu'elle soit tres grosse cette boule (afin de ne pas trop ralentir le pc, mais ce serai joli!

si quelqun voir comment cette jolie flamme pourrai etre transformée en boule, je le remerci! car je n'ai pas tout compris de se code malgret le degropage des etapes! merci a tous!
moi je met 10 car c'est trop beau ce feu! meme si mon pc aussi rame! pour vu qu'il ne chauffe pas trop et que le feu ne se propage pas de l'ecran a l'unité centrale!
vr3h Messages postés 164 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 9 octobre 2006
5 janv. 2004 à 12:06
Bonjours à tous,
Très sympa et très bien réalisé, ca peut être très pratique pour générer des textures de Feu à utiliser dans un monde en 3D ;)
il n'y a qu'a rajouter quelques fonctions ou modifier un peu le code et ce sera tout bon (dessiner par exemple sur une surface dont la dimension est une puissance de 2, et sauvegarder chaque image)
Amusez vous bien et GG à BumpMann
cs_nihaoma Messages postés 140 Date d'inscription jeudi 2 mai 2002 Statut Membre Dernière intervention 2 février 2010
23 déc. 2003 à 23:44
l'effet est plutot sympa, c'est jolie, on s'y croirait... mais c'est clair que c un peu lent, impossible de l'utiliser dans un jeu, par contre en screensaver ou bien en visu style winamp (en modifiant les paramètres en temps réel) ca pourait etre sympa
8/10
VbMaster Messages postés 21 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 15 avril 2004
12 déc. 2003 à 22:17
magnifique dommage que ca rame à fond mais en l'optimisant, ca ferait un bô screensaver (meerde mon écran brûle ah non c'est le screensaver lol)
cs_LaPatoshe Messages postés 53 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 19 décembre 2009
9 déc. 2003 à 20:31
impec
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
9 déc. 2003 à 20:31
non je sais, c'est Nix qui fait des menaces sans les exécuter (le mot est juste), on dirait un nouveau prof :-D
rien de personnel Nix ;-)

et puis c'est franchement plus simple s'il y a un exe, j'ai confiance...
BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
9 déc. 2003 à 19:52
heuuuuu.. j'ai remarqué un nouveau truc. en dessous du chemin d'acces du zip, lors de la mise a jour,

"(Evitez de mettre des éxécutables dans vos zips merci de votre compréhension, les .exe seront automatiquement supprimé lors de l'upload)"

Il ne me la pas supprimé pourtant :S
BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
9 déc. 2003 à 19:48
Voilavoila l'exe ^^;
cs_LaPatoshe Messages postés 53 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 19 décembre 2009
9 déc. 2003 à 19:46
L'effet est relativement sympa pour un programme qui n'utilise pas de texture.
A plus
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
9 déc. 2003 à 12:58
exe stp bumpmann, j'ai pas VB, mais ce qui vient de toi vaut le coup d'être vu normalement.
BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
8 déc. 2003 à 19:30
mhhhh... 450Mhz? si tu veux quelque chose qui ne ramme pas, décalage = 250, inactivité = 420, consummation = 8

le feu sera évidemment plus petit, mais le programme ne rammera pas...
DragonDo Messages postés 93 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 22 juillet 2006
8 déc. 2003 à 19:22
L'effet est sympa, mais je le trouve un peu lent (à moins que ce ne soit à cause de ma machine PIII 450 Mhz).
Sinon, rien que pour le code ça vaut vraiment le coup. Merci

@+
BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
8 déc. 2003 à 18:06
Conseil pour développer avec DIRECTDRAW: Même si vous avez le directx sdk 8 ou 9, ayez le 7! dans celui-ci, on trouve une aide complete sur toutes les fonctions de DirectDraw, ainsi que des exemples et tutoriaux ^^
cs_slayer Messages postés 202 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 18 mars 2008
8 déc. 2003 à 10:06
c'est plutot bien reussi ...
Rejoignez-nous