Page 1 sur 6
Particules venant du grenier :D
Publié : dim. 29/juil./2007 17:34
par Crystal Noir
J'ai ressorti du grenier un bout de code que j'avais fait au départ en pure, puis effacé, puis refait sous bmax et enfin revue et refait sous pure
C'est un petit moteur de particules, qui va me servir dans mes projets ou créations. J'ai encore pleins de trucs à faire dessus pour le peaufiner mais voici un exemple de ce que cela peut donner :
http://crystalnoir.free.fr/Creations/Pu ... pstest.zip
En fait suivant les paramètres on peut donner des effets et styles divers, (flare ,fumée, etc...).
Publié : lun. 30/juil./2007 19:40
par Crystal Noir
arf.
Bon et ben euh, quand j'aurais peaufiné je mettrais le code bien entendu.
Publié : lun. 30/juil./2007 21:27
par Flype
c'est très joli et hyper fluide. en tout cas moi j'aime bien 10/10.
Publié : lun. 30/juil./2007 22:51
par Ar-S
Tout simplement superbe !
J'utilise le soft Particle illusion pour faire des effets de particules et franchement, ton effet n'a rien à envier aux soft pro !
Je suis impatient de voir ton code. Félicitations
Publié : lun. 30/juil./2007 23:20
par Crystal Noir
merci
Le code n'est pas excessivement compliqué vous verrez. Je voulais justement faire quelque chose de simple (sans 36000 calculs mathématiques) tout en espérant pouvoir avoir des effets sympas et je ne suis pas mécontent car on arrive à des résultats sympas
Tout se contrôle via des procédures qui permettent de tout paramétrer. Ce qu'il faut c'est bien jongler avec les différentes valeurs et pas hésiter à faire des essais sachant que les valeurs sont très petites et en foat.
Je peaufine toujours je posterai quelques effets différents pour donner des exemples.
Quand j'aurais fini je pourrais distribuer le .pb à mettre en include avec des exemples et une doc
Pour vous donner une idée du principe pour l'utilisation, on appelle une procédure Setup qui paramétre les particules (position x, y , vitesse, velocite, gravite, xoff etc...) les particules sont stockées dans une liste unique, il suffit alors d'appeler une procédure de mise à jour de particule et la procédure d'affichage.
Il est possible de controler plusieurs flots de particules en même temps car dans le setup on donne l'ID des particules, ce qui permet avec une liste unique de particules de pouvoir contrôler plusieurs flots de particules à la fois.
Je vous tiens au courant de l'avancé et je posterai des exemples d'effets au fur et à mesure
Ca va me servir pour mes projets en cours et futurs, quand j'aurais terminé, je posterai le tout

Publié : lun. 30/juil./2007 23:38
par ATHOW
Très sympa !
Publié : mar. 31/juil./2007 7:01
par tmyke
Même si je ne suis pas un afficionados de la 2D, j'admet que c'est très bon.
C'est du niveau d'un moteur 2D comme HGE, une réference en 2D.
T'as plus qu'a développer, et faire comme HGE un petit éditeur de particules.
Par contre, comme tous le monde, je verais avec plaisir le code (l'exe fait plus de 100Ko ...)
Publié : mar. 31/juil./2007 8:31
par Crystal Noir
pour l'éditeur je sais pas encore

pour l'instant faut déjà que je finisse le code particule
En fait, l'éditeur particules servirait juste à faire le "setup" de départ des particules donc je ne sais pas si ca vaut bien le coup.
Car après un setup, il est tout à fait possible de modifier le comportement des particules, cela n'est pas figé. Par ex, on paramètre les particules de départ avec le SetupParticle et en plein programme, rien ne nous empêche suite à une condition ou un évènement de changer par exemple la gravité des particules déjà créés avec SetGravity.
Je pense que dans un premier temps je sortirai le .pb qui permet de tout gérer via un include. En fait il est simple à utiliser.
Publié : mar. 31/juil./2007 10:01
par Crystal Noir
100 ko je trouve pas énorme et je dirais même que c'est petit. Contrairement à Bmax qui te fait des exe de 1,5 Mo
En fait le programme principal a un include et j'utilise les sprites3D et une structures.
Enfin je pense pas que 100 ou plus ce soit énorme pour ma part.
Voici un autre exemple, c'est un exemple de fumée :
http://crystalnoir.free.fr/Creations/Pu ... /fumee.zip
Quand j'aurais fini je posterai le fichier à includer avec des exemples et une doc vous aurez tout le plaisir de voir le code

Publié : mar. 31/juil./2007 10:12
par tmyke
Bien l'exemple de la fumé. Pour ce qui est de l'editeur, tu as raison, cela viendra
peut-etre plus tard, finaliser ton code est le plus important.
En fait, dans mon espris, un editeur de particules est plus la pour faire des essais
en important différentes textures de particules, faire varier leur vitesses, leur gravité,
les couleurs de départ et de fin, les écarts d'angles programmés, les changement
de taille dynamiques, bref pour voir en temps réél ce que les réglage que l'on affectent
donne visuellement parlant, car directement dans le code et a taton, cela peux parfois etre fastidieux.
Mais chaque choses en son temps... (vivement le code en tous les cas)

Publié : mar. 31/juil./2007 10:16
par Crystal Noir
Je peux déjà vous montré le code principal de l'exemple de la fumée :
Code : Tout sélectionner
;Initialisation des composants
InitSprite()
InitSprite3D()
InitKeyboard()
InitMouse()
UsePNGImageDecoder()
UseJPEGImageDecoder()
;Création de la fenêtre principale
SetRefreshRate(60)
MaFenetre = OpenScreen(800,600,32,"Test")
If MaFenetre = 0
MessageRequester("Erreur", "Impossible d'ouvrir une fenêtre DirectX", #PB_MessageRequester_Ok)
EndIf
Part2D = LoadSprite(#PB_Any,"smoke1.png",#PB_Sprite_Texture)
Part3D = CreateSprite3D(#PB_Any,Part2D)
IncludeFile("CPS.pb")
;Boucle Principale
Repeat
ClearScreen(RGB(0,0,0))
ExamineMouse()
For i = 1 To 6
ParticleSetup(0,400,300,Random(0.18)-0.09,0,Random(-0.08),Random(0.005)+1,
Random(100),Random(100),255,255,255,Random(200),"alpha",0,0.08,0,0,0.005)
Next
ResetList(MesParticules())
While NextElement(MesParticules())
ParticleUpdate(0,800,0,600)
DisplayParticle(Part2D,Part3D)
Wend
ExamineKeyboard()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Vous voyez que c'est très court. L'include se charge du reste.
En ce moment je remagne le code pour le Setup, je vais fonctionner autrement pour utiliser des nombres entiers (plus lisible et encore plus simple, car les random ne prennent pas en compte les nombres flottants).
Publié : mar. 31/juil./2007 14:59
par Crystal Noir
Voici un autre exemple simple : le sang
Essayez de tirer sur le Kenny (le pauvre)

il y a juste un petit bug on peut tirer par endroit alors que kenny n'y est pas (ca sera corrigé plus tard), mais pour le principe essayez donc de tirer dessus
C'est un petit effet gore sympa qui est réalisé exactement avec le même moteur mais des paramètres différents :
http://crystalnoir.free.fr/Creations/Pu ... /Kenny.zip
En fait c'est des exemples que je fais pour tester certains paramètres et voir si ca bug pas
les codes seront bientôt dispo, j'ai encore des fonctions à ajouter, et puis je ferai comme j'ai dit une petite doc

Publié : mar. 31/juil./2007 16:20
par Crystal Noir
Publié : mar. 31/juil./2007 16:23
par ATHOW
Vraiment joli, je sens que je vais souvent m'en servir !
Publié : mar. 31/juil./2007 16:29
par Crystal Noir
Quand vous allez voir le code, vous verrez qu'il reste simple, c'est ce que je voulais faire.
Car il est vraiment pas dur, mais bon c'était le but du jeu aussi.
j'aime bien la bougie, même si j'aime bien l'effet sang gore (surtout quand c'est kenny mdr

)