Particules venant du grenier :D

Programmation avancée de jeux en PureBasic
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Particules venant du grenier :D

Message 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 :D

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...).
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Message par Crystal Noir »

arf.

Bon et ben euh, quand j'aurais peaufiné je mettrais le code bien entendu.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

c'est très joli et hyper fluide. en tout cas moi j'aime bien 10/10.
Image
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Message 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
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Message 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 :)
ATHOW
Messages : 226
Inscription : mer. 29/déc./2004 16:54

Message par ATHOW »

Très sympa !
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message 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 ...)
Force et sagesse...
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Message par Crystal Noir »

pour l'éditeur je sais pas encore :D 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.
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Message 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 :D

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 :)
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message 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)

;)
Force et sagesse...
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Message 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).
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Message par Crystal Noir »

Voici un autre exemple simple : le sang

Essayez de tirer sur le Kenny (le pauvre) :D 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 :D

les codes seront bientôt dispo, j'ai encore des fonctions à ajouter, et puis je ferai comme j'ai dit une petite doc :)
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Message par Crystal Noir »

Aller un dernier exemple, une bougie ténébreuse :

http://crystalnoir.free.fr/Creations/Pu ... bougie.zip
ATHOW
Messages : 226
Inscription : mer. 29/déc./2004 16:54

Message par ATHOW »

Vraiment joli, je sens que je vais souvent m'en servir !
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Message 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 :D)
Répondre