Page 3 sur 5

Re: LiXu.pbi : Animation & Particule 2D

Publié : mer. 01/juil./2015 11:14
par falsam
Whaou joli la démo snow. Je regarde lixu.pbi et j'ajoute une tout petite modification qui permet d'afficher un simple texte.

Je publie par la suite et j'ajoute ton nom dans les contributeurs avant de le basculer sur GitHub :)
blendman a écrit :je pense que Fred devrait les inclure avec purebasic (ainsi que cette lib)
Tout à fait d'accord avec toi :)

Re: LiXu.pbi : Animation & Particule 2D

Publié : mer. 01/juil./2015 11:33
par blendman

Re: LiXu.pbi : Animation & Particule 2D

Publié : mer. 01/juil./2015 11:50
par falsam
Pas d'animation du personnage mais je trouve ça génial. Tu sais que tu peux ajouter un sprite aux particules.

Ma version 1.2 était un add-on aux fonctions existantes de PureBasic. Avec ta version (1.3) on est en train de créer un vrai framework 2D.

Re: LiXu.pbi : Animation & Particule 2D

Publié : mer. 01/juil./2015 12:08
par falsam
J'ai du mal à comprendre la différence entre la fonction native DisplaySprite() ou DisplayTransparentSprite() et celle que tu as ajoutée DrawSprite() ?

Re: LiXu.pbi : Animation & Particule 2D

Publié : mer. 01/juil./2015 12:15
par blendman
falsam a écrit :Pas d'animation du personnage mais je trouve ça génial.
Oui, à l'époque, j'avais laissé tombé car c'était trop long de faire un petit jeu de plateforme. Du coup, je n'ai pas fait l'animation du personnage ^^.
Tu sais que tu peux utiliser ajouter un sprite aux particules.
j'ai vu ça ;).
Ma version 1.2 était un add-on aux fonctions existantes de PureBasic. Avec ta version (1.3) on est en train de créer un vrai framework 2D.
Si ça facilite la création de jeux vidéos avec purebasic, ce sera vraiment intéressant ;).

Il manque encore quelques fonctions pour simplifier la création de jeux, mais les modules pour ça sont vraiment excellents !

Code : Tout sélectionner

J'ai du mal à comprendre la différence entre la fonction native DisplaySprite() ou DisplayTransparentSprite() et celle que tu as ajoutée DrawSprite() ?
vu que tu gères les sprites avec une map(), c'est juste parce que c'est plus court d'écrire DrawSprite() que ce qu'elle contient ;). D'autant que j'y ai ajouté le blendmode(), mais on pourrait ajouter d'autres choses par la suite, on ne sait jamais ^^.
En fait, l'idée c'est de simplifier au maximum le code qu'on va utiliser pour créer un jeu par exemple, donc cette fonction est plus courte que d'écrire ce qu'elle contient plus sieurs fois.

Re: LiXu.pbi : Animation & Particule 2D

Publié : mer. 01/juil./2015 12:40
par falsam
falsam a écrit :l'idée c'est de simplifier au maximum le code qu'on va utiliser pour créer un jeu par exemple, donc cette fonction est plus courte
Adopté :)

■ Un peu de sémantique si ça ne te dérange pas. (Oui je suis emmerdant :mrgreen: )

J'ai essayé de normaliser le plus possible les différentes fonctions de lixu.

Les fonctions liées aux particules commences par Particle
- ParticleRate(), ParticleSpeedRange(), ParticleRotateRange, etc ....

Les fonctions liés aux Sprites commences toutes par .... Sprite
- SpriteAddAnimation(), SpriteSetAnimation(), SpriteUpdateAnimation()

La structure d'une fonction est Objet + Verbe + Complément (Facultatif)

Au passage j'ai modifié SetSpriteSheet() par SpriteSetSheet()

Peut'on faire de même pour tes fonctions liée aux Sprites?
- AddSprite() deviendrait SceneAddSprite() - Tu remarqueras la notion de scéne.
- SetSprite() deviendrait SpriteMoveTo()
- DrawSprite deviendrait SpriteDraw()

Et celles liées aux ScrollSprites ?
- AddScrollSprite deviendrait ScrollSpriteCreate()
- La fonction existante ScrollSprite() deviendrait ScrollSpriteUpdate()

Re: LiXu.pbi : Animation & Particule 2D

Publié : mer. 01/juil./2015 13:04
par blendman
Pas de soucis pour moi, au contraire ;)
Je fais d'ailleurs souvent ça dans mes codes (Layer_Add(), Layer_Delete(), etc...)

Re: LiXu.pbi : Animation & Particule 2D

Publié : jeu. 02/juil./2015 8:49
par blendman
Je viens de voir un truc, si cette lib est destinée aussi à une démo de ce que permet purebasic, en peu de code, il faut penser à ce qu'elle soit utilisable avec la version démo ;).

Donc, il faut que tu découpes ton fichier Lixu.pbi en plusieurs fichiers, avec des xincludefile "".
Je l'ai fait et j'ai testé sur la 5.20 démo, ça marche nickel, ce qui est top. Ca signifie que ceux qui veulent tester la démo pourraient avoir une chouette idée de ce que permet purebasic avec ces fichiers ;)

Sinon, tu as avancé sur la suite de lixu ?

Re: LiXu.pbi : Animation & Particule 2D

Publié : jeu. 02/juil./2015 13:34
par falsam
La version 1.3 de lixu est disponible

■ Ajout
SceneAddSprite(sprite,file$,CenterX=0,CenterY=0,alpha=255,BM=0,color=#White) (by Blendman)
SpriteSetXY(sprite, x, y) (by Blendman)
SpriteDraw(sprite, x=0, y=0) (by Blendman)

SpriteMirrorHorizontal(Sprite) (By dige)
SpriteFadeOut(SpriteID, Offset.b, Intensity.b) (By dige)

Voir l'exemple lixu - 9 Mirror & Fade.pb

:arrow: Télécharger lixu.zip (Source et exemples )

■ Les exemples sont corrigés.

@Blendman:
- Ta variable alpha correspond à ma variable opacity je pense ?
- CenterX et CenterY ne servent à rien pour le moment. On enlève ? ou pas ? :mrgreen:

[Edit] Mise à jour de l'exemple lixu - 9 Mirror & Fade.pb suite à une erreur.

Re: LiXu.pbi : Animation & Particule 2D

Publié : jeu. 02/juil./2015 14:18
par blendman
falsam a écrit :- Ta variable alpha correspond à ma variable opacity je pense ?
je pense que oui.
- CenterX et CenterY ne servent à rien pour le moment. On enlève ? ou pas ? :mrgreen:
On garde, c'est le centre de tes sprites ;)
Si tu veux faire une rotation non pas en width/2 height/2 comme c'est le cas, je pense que ça peut servir ce centre ;).
Ainsi que pour placer correctement tes sprites, si plus tard, on ajoute le Zordering ^^.

Re: LiXu.pbi : Animation & Particule 2D

Publié : jeu. 02/juil./2015 14:35
par falsam
blendman a écrit :Si tu veux faire une rotation non pas en width/2 height/2 comme c'est le cas, je pense que ça peut servir ce centre
Certes mais pour le moment je ne suis pas arrivée à créer une fonction comme SpriteAnchor(Sprite, x, y) pour changer se point de rotation. (x et y varie de 0 à 1)

Exemple : SpriteAnchor(Sprite, 0, 0.5)

J'ai pu le faire en JavaScript par contre :p

Version sans modification du point de rotation
http://www.falsam.com/forum/data/tuto-S2D/demo1.html

Version avec modification du point de rotation
http://www.falsam.com/forum/data/tuto-S2D/demo1B.html

Juste pour le fun le code correspondant (Oui c'est hors sujet)

Code : Tout sélectionner

// Déclaration des sprites
var background, logo;

// Ouvre un écran et déclare la procédure de mise à jour de la scéne
OpenScreen("game", 10, 10, 800, 600, Update);

// Chargement de l'image représentant le background
background = LoadSprite("assets/image/blur1.jpg", 630, 410);

// Chargement de l'image représentant le logo 
logo  = LoadSprite("assets/image/html5logo.png", 256, 256);

// Définition du point de rotation (au centre)
AnchorSprite(logo, 0, 0.5);

// Procédure de mise à jour de la scéne
function Update() {
	// Efface la totalité de l'écran avec la couleur html spécifiée
	ClearScreen('#000000');
	
	// Affichage du background et redimentionnement en 800 * 600. 
	DisplaySprite(background, 0, 0, 800, 600);	
	
	// Affichage du logo)
	DisplaySprite(logo, 400, 300);	
	
	RotateSprite(logo, 0.1, true);
};

Re: LiXu.pbi : Animation & Particule 2D

Publié : jeu. 02/juil./2015 14:46
par falsam
La version 1.4 est disponible.

Ajout
- SpriteFlipVertical(Sprite) Retourner un sprite verticalement.
- SpriteColorGrayScale(Sprite) Colorise un sprite en dégradé de gris.

Modification
- SpriteMirrorHorizontal(Sprite) devient SpriteFlipHorizontal(Sprite)
- SpriteFadeOut(SpriteID, Offset.b, Intensity.b) devient SpriteColorFadeOut(Sprite, Offset.b, Intensity.b)

Les exemples sont modifiés.

:arrow: Télécharger lixu.zip (Source et exemples )

On laisse mijoter tout ça le temps de déboguer si besoin.

Re: LiXu.pbi : Animation & Particule 2D

Publié : jeu. 02/juil./2015 15:28
par blendman
falsam a écrit :Certes mais pour le moment je ne suis pas arrivée à créer une fonction comme SpriteAnchor(Sprite, x, y) pour changer se point de rotation. (x et y varie de 0 à 1)
visiblement, j'ai confondu avec un autre langage, on ne peut pas changer le point de rotation, Fred l'a mis en w/2, h/2, il faudrait lui demander d'ajouter une fonction SpriteHotSpot() ou SpriteAnchor() qui détermine le centre (qui servirait pour l'affichage et pour le centre de rotation, et zoom)

PS : c'est qui au fait, Dige ?

Re: LiXu.pbi : Animation & Particule 2D

Publié : jeu. 02/juil./2015 15:32
par falsam
Dige est un membre du forum anglais. J'avais récupéré il y a quelques années une de ses fonctions.
Mais finalement je ne la retiens pas dans la version 1.4 que je viens de publier.

Re: LiXu.pbi : Animation & Particule 2D

Publié : jeu. 02/juil./2015 15:34
par blendman
falsam a écrit :Dige est un membre du forum anglais. J'avais récupéré il y a quelques années une de ses fonctions.
Mais finalement je ne la retiens pas dans la version 1.4 que je viens de publier.
ben oui, il me semble que pour le miror, c'est mieux avec la transformation, c'est plus rapide (enfin, je crois).
Mais ça ne marche pas avec la 5.31 x64, uniquement en x86 ^^.