[resolu]Faire disparaitre un sprite
[resolu]Faire disparaitre un sprite
Dans mon ébauche de casse brique, j'ai maintenant 3 Sprite.
Palette, balle et brique
Pour faire disparaitre la brique, je dis au programme que "si collision de la balle avec la brique", alors la brique se positionne hors de l'écran.
Je trouve ça plutôt barbare même si ça fonctionne.
J'ai vu qu'il y a la commande FreeSprite(#Sprite) mais celle ci vire carément le sprite de la mémoire, il faut donc recharger le sprite à chaque fois qu'on relance une partie ?
Quel moyen employez vous pour faire disparaitre vos sprites ? Ai-je loupé une commande ?
Palette, balle et brique
Pour faire disparaitre la brique, je dis au programme que "si collision de la balle avec la brique", alors la brique se positionne hors de l'écran.
Je trouve ça plutôt barbare même si ça fonctionne.
J'ai vu qu'il y a la commande FreeSprite(#Sprite) mais celle ci vire carément le sprite de la mémoire, il faut donc recharger le sprite à chaque fois qu'on relance une partie ?
Quel moyen employez vous pour faire disparaitre vos sprites ? Ai-je loupé une commande ?
Dernière modification par Ar-S le lun. 25/janv./2010 15:41, modifié 1 fois.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Faire disparaitre un sprite
Ar-S a écrit : Quel moyen employez vous pour faire disparaitre vos sprites ? Ai-je loupé une commande ?
je le met hors de l'ecran !!


c'est la meilleurs solution

cela peut meme faire l'objet d'une animation
de voir la brique glisser hors de l'ecran

Re: Faire disparaitre un sprite
alors j'ai vu juste ^^
Merci
Ralala mais que ça me fait planer

Merci
Ralala mais que ça me fait planer




~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Faire disparaitre un sprite
Salut Ar-s,
Tu ne l'affiches pas, tout simplement.
Normalement, (Dobro, l'a bien expliqué dans son tutorial), tu fais une boucle principale avec :
Repeat
- calcul les positons
- test les collisions
=> destruction des briques
Chez moi, tous mes sprites peuvent apparaitre ou disparaitre, je ne fais pas de freesprite, je mets une variable à 1 quand ils doivent être actifs et 0 quand ils sont morts ou quand ils sortent de l'écran et ne necessitent pas d'être affichés
- efface ecran
- affiche les decors
- affiche les briques (uniquement celles qui sont à 1)
Until...
Tu ne l'affiches pas, tout simplement.
Normalement, (Dobro, l'a bien expliqué dans son tutorial), tu fais une boucle principale avec :
Repeat
- calcul les positons
- test les collisions
=> destruction des briques
Chez moi, tous mes sprites peuvent apparaitre ou disparaitre, je ne fais pas de freesprite, je mets une variable à 1 quand ils doivent être actifs et 0 quand ils sont morts ou quand ils sortent de l'écran et ne necessitent pas d'être affichés
- efface ecran
- affiche les decors
- affiche les briques (uniquement celles qui sont à 1)
Until...
Only PureBasic makes it possible
Re: [resolu]Faire disparaitre un sprite
attention dans ce cas , ou tu ne te contente que de ne pas afficher le sprite
les structures elle ont toujours la position qu'avait le sprite !! ( ou qu'a le sprite )
ce qui peux occasionner des collisions fantomes !!
je prefere mettre le sprite hors de l'ecran
pour eviter une collision sur l'aire de jeux !!
mais oui on peut tout axer sur la structure \Vie
les structures elle ont toujours la position qu'avait le sprite !! ( ou qu'a le sprite )
ce qui peux occasionner des collisions fantomes !!
je prefere mettre le sprite hors de l'ecran
pour eviter une collision sur l'aire de jeux !!

mais oui on peut tout axer sur la structure \Vie

Re: [resolu]Faire disparaitre un sprite
ah mais bien sûr !
j'ai ajouté brique(1)/vie, ça le fait
Merci Cool Dji
---edit----
je viens de voir ta réponse Dobro.
Avec le passage de brique(1)/vie=0 lors de la collision, le sprite disparait bien. Je n'ai pas l'impression que la balle prennent en compte les coord de la brique "fantome" si celle ci a disparu. Elle (la balle) continue bien son chemin
j'ai ajouté brique(1)/vie, ça le fait

Merci Cool Dji
---edit----
je viens de voir ta réponse Dobro.
Avec le passage de brique(1)/vie=0 lors de la collision, le sprite disparait bien. Je n'ai pas l'impression que la balle prennent en compte les coord de la brique "fantome" si celle ci a disparu. Elle (la balle) continue bien son chemin
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: [resolu]Faire disparaitre un sprite
J'utilisais une technique avec GM, je pense que ça doit être applicable avec purebasic :
- d'abord on crée un "objet" (invisible) que j'appelle par exemple bibliotheque et qui ne contient que des variables et des "adresses" comme le loading des images.
- ensuite, je crée un objet "supprime" dont le sprite = le sprite ball de l'objet bibliotheque
- lorsque tu touche une brique, tu supprimes l'objet brique, mais ça ne supprime pas le sprite. De plus, ça permet de ne charger le sprite qu'une seule fois.
Ce doit être transposables avec purebasic, non ?
je vais y réfléchir et si je trouve la solution, je posterai.
Cela dit, la solution de placer le sprite hors de la vue ou de ne pas l'afficher fonctionne aussi
.
- d'abord on crée un "objet" (invisible) que j'appelle par exemple bibliotheque et qui ne contient que des variables et des "adresses" comme le loading des images.
- ensuite, je crée un objet "supprime" dont le sprite = le sprite ball de l'objet bibliotheque
- lorsque tu touche une brique, tu supprimes l'objet brique, mais ça ne supprime pas le sprite. De plus, ça permet de ne charger le sprite qu'une seule fois.
Ce doit être transposables avec purebasic, non ?
je vais y réfléchir et si je trouve la solution, je posterai.
Cela dit, la solution de placer le sprite hors de la vue ou de ne pas l'afficher fonctionne aussi

http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: [resolu]Faire disparaitre un sprite
hum .. si tu te met au Purebasic , il va te falloir oublier
Game Maker ...
c'est pas du tout le meme principe ....
ce qui tu appel objet invisible , qui contient ls parametres de ton sprite
c'est une Structure en Purebasic ....
Game Maker ...
c'est pas du tout le meme principe ....
ce qui tu appel objet invisible , qui contient ls parametres de ton sprite
c'est une Structure en Purebasic ....
Re: [resolu]Faire disparaitre un sprite
oui, tout fait, autant pour moiDobro a écrit :hum .. si tu te met au Purebasic , il va te falloir oublier
Game Maker ...
c'est pas du tout le meme principe ....
ce qui tu appel objet invisible , qui contient ls parametres de ton sprite
c'est une Structure en Purebasic ....

En fait, je parlais plus de la méthode, mais c'est vrai que les termes portent à confusion, je suis désolé.
Donc, concernant la méthode, je suppose que l'on peut faire ça :
- créer une structure que l'on appelle bibliotheque et qui ne contient que des variables et des "adresses" comme celles des images. Je pense que l'on doit créer un tableau pour accéder à certaines données de la structure bibliotheque ?
- ensuite, je crée une structure "brique" dont le sprite = le sprite ball de la structure bibliotheque. On doit aussi sans doute créer un tableau définissant le nombre de brique (ou peut être une liste) ?
- lorsque l'on "touche" une brique, récupère "l'id" de cette brique (le numéro dans le tableau des briques, peut être) on enlève un élément du tableau (ou on ne l'affiche plus) ou de la liste.
Il faut que je teste pour voir si cette méthode fonctionne ou pas, je n'en suis pas du tout certain

http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: [resolu]Faire disparaitre un sprite
ah oui, merci beaucoup.
Pourtant, j'avais déjà regardé les structures, mais j'avais oublié qu'on n'était pas obligé de créer un tableau pour les utiliser.
Et aussi, grâce à cet excellent tutoriel, je commence à mieux saisir le concept des pointeurs (je l'avais un peu abordé, mais là, je pense que je viens de comprendre comment les utiliser correctement avec les structures

Encore merci

http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: [resolu]Faire disparaitre un sprite
un affichage hors de l'écran fait un peu bricolo quand même.
un flag tout simplement :
Tu n'as plus qu'a parcourir la liste dans une fonction ( pour l'affichage , une autre pour les collisions ), pour arrêter l'affichage & les collisions , tu supprimes simplement l'élément de la liste.
un flag tout simplement :
Code : Tout sélectionner
Structure MonObjet
SpriteID.i
PosX.f
PosY.f
Angle.f
Vitesse.f
endstructure
global newlist mesobjet.MonObjet()
Tu n'as plus qu'a parcourir la liste dans une fonction ( pour l'affichage , une autre pour les collisions ), pour arrêter l'affichage & les collisions , tu supprimes simplement l'élément de la liste.

Re: [resolu]Faire disparaitre un sprite
Je ne sais pas si quelqu'un pense comme moi mais je vais expliquer comment je fais :
Je ne detecte pas la collision avec une instruction specifique. Je regarde ou est la balle et j'analyse mon dim qui contient le numero de la brique. Si 0, pas de brique. Je joue donc a virer les briques dans mon dim et c'est tout.
Je ne detecte pas la collision avec une instruction specifique. Je regarde ou est la balle et j'analyse mon dim qui contient le numero de la brique. Si 0, pas de brique. Je joue donc a virer les briques dans mon dim et c'est tout.
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits