merci
pour le shoot em up j'vais appeler polux à mon secours mdr
J'avance tout doucement, il me reste encore quelques procedures à voir.
voici néanmoins les instructions déjà disponibles qui permettent de gérer l'ensemble du moteur simplement.
Instructions moteur
ParticleSetup() : C'est celle qui contient le plus de paramètre, elle permet de configurer un flot de particule
Particleupdate() : Obligatoire, elle se charge de mettre à jour les particules, elle a en paramètre la zone minimale et maximale d'affichage.
DisplayParticle() : permet d'afficher le flot de particules. Elle prend en paramètre l'image 2D et l'image 3D définies par l'utilisateur.
Instructions de renvoies
ParticleX() : renvoie la position X d'une particule
ParticleY() : idem mais pour la position Y
ParticleID() : renvoie l'id de la particule. Chaque particule est identifié par un ID, toutes les particules ayant la même ID constitue un flot de particules. On peut gérer avec ce système autant de flot de particules et de particules qu'on veut. Le moteur contrairement à d'autres, ne fonctionnent pas avec un emitteur qu'on met à jour, ici on contrôle chaque particules simplement, cela permet d'avoir une plus grand liberté d'effets.
Au lieu de modifier un emetteur qui se chargera de modifier toutes les particules de la même manière, on peut modifier certaines particules en particuliers avec des conditions une simple condition if else endif. Par ex sur 400 particules on peut choisir de modifier uniquement celles qui ont un comportement particulier, on agit sur les particules même et non sur un emetteur qui modifierait tout l'ensemble.
Il est aussi possible de contrôler avec une seule boucle while nextelement() / wend l'ensemble de tous les flots de particules. On peut imaginer un flot de 200 particules de feu où chacune a une ID de 0 et un flot de 200 particules de fumée où chacune à une ID de 1, ce qui fait au total 400 particules mais deux effets différent et contrôlable via la même liste de particule (l'ID faisant la différence).
ParticleVel() : renvoie la vélocité d'une particule
ParticleVit() : renvoie la vitesse d'une particule
ParticleGrav() : renvoie la gravité d'une particule
ParticleVie() : renvoie la vie d'une particule
ParticleAlpha() : renvoie la valeur alpha pour affichage d'une paticule
ParticleEchX() : renvoie la largeur de la particule
ParticleEchY() : idem mais pour la hauteur
ParticleXoff1() : renvoie la valeur 1 de l'offset de la particule
ParticleXoff2() : idem pour la seconde valeur. Ces valeurs couplées à la force permettent de les faire virer à droite ou à gauche.
ParticleRouge() : renvoie la valeur de couleur rouge
ParticleVert() : idem pour le vert
ParticleBleu() : idem pour le bleu
Instructions SET :
ParticleSetX() : permet de fixer la position X d'une particule
ParticleSetY() : idem pour la position Y
Voilà comme vous voyez il me reste à finir la liste des instructions de SET et à modifier quelques procedures moteur.
Avec toutes les intructions disponibles on pourra tout contrôler et ce particule par particule via une boucle while nextelement() / wend et quelques conditions IF.
J'ai voulu faire de chaque particule une entité modifiable. et non un emetteur qui gère tout l'ensemble
avec le code évidemment je mettrai les exemples et une doc complète pour l'utiliser
Je vous tiens au courant de son avancement.