[Noobquestion] Faire disparaître une explosion

Bonjour à tous,

C’est avec beaucoup d’émotion que je viens vous soumettre mon 1er (et pas le dernier :p) de mes problèmes. Nouvel arrivant, j’ai finis le tuto’ (très bien réalisé d’ailleurs :wink: ) et souhaite plonger un peu plus dans le vif du jeu pour y exploiter le plus de ses capacités.

Aussi, venant à peine de commencer, me voilà déjà avec un problème “pointu”; vaisseau dégommé, l’explosion s’affiche, mais… ne disparaît pas, malgré quelques essais avec le chrono’ et autres, sans succès ^^’. La question est donc: Comment faire disparaître une explosion une demie seconde après son apparition :slight_smile: ?

Merci d’avance!

Salut,

Ton explosion a-t-elle plusieurs images qui défile à la suite (pour faire une animation en fait) ? Si oui, combien ?
(J’ai besoin d’avoir ces détail pour t’aider)

En fait, il faut faire sorte que si l’image affichée par l’explosion est la dernière image, on supprime l’objet “explosion”.

Merci pour ta réponse,

Voilà quelques infos qui peuvent peut-être t’aider: Mon explosion n’est composé que d’une image “explosion”, et l’évènement se présente comme ceci:

Condition: Tir est en collision avec Objet
Actions: Créer explosion à la position de l’objet
Supprimer l’Objet

Mais bon, si après j’ajoute “Supprimer explosion”, on ne verra pas l’explosion, car elle sera supprimer juste après la collision ^^’ Je cherche donc à ce qu’elle disparaisse (se supprime) d’elle même une demie-seconde après la collision :wink:

Je te remercie encore d’avoir pris le temps de répondre ^^

Ce que je te propose, on va utiliser les variables d’objets.
Une variable est un “emplacement” qui possède un nom et qui stocke une valeur. Dans Game Develop, on peut tester, affecter une valeur à une variable.
Il y a 3 types de variables : les variables globales, les variables de scène, les variables d’objet.
Dans notre cas, nous allons utiliser une variable d’objet, c’est-à-dire qu’elle appartient à un objet, dans notre cas le fameux … l’incroyable … objet “explosion” :laughing: . Cela veut dire que si il y a plusieurs “explosion” en même temps, elles auront toutes leur propre variable. Evidemment, un objet peut posséder plusieurs variables.
Je te propose de nommer notre variable d’objet : tempsAffiche.

Maintenant que je t’ai expliqué le principe des variables et celle que nous allons utiliser, je vais t’expliquer le principe :

Grâce à un chronomètre, nous allons ajouter 1 à la variable d’objet tempsAffiche toutes les 0.1 secondes. Cela sera fait pour la variable tempsAffiche de tous les objets “explosion”. (on sait jamais, il peut y avoir deux explosions en même temps).
Ensuite, dans un événement séparé, on va testé si un objet “explosion” a sa variable tempsAffiche qui dépasse 5 (ben oui, vu qu’on ajoute 1 toutes les 0.1 sec), si oui, on supprime cet objet.

En espérant que tu aies compris, je te montre un screen de ce que ça devrait donner :
[attachment=0]eventsDeleteExplosionAfter0.5Sec.png[/attachment]
Remarques : L’action et la condition relative aux variables d’objets se trouve dans la catégorie Tous les objets > Variables. Attention, il faut pas prendre la condition ou l’action qui utilise les textes. Faire aussi attention au signe de modification de la 1ère action de ma solution, c’est le signe + (plus) car on ajoute 1.

Désolé d’intervenir comme ça dans le sujet, mais le problème se réglerait-il de la même façon s’il y avait plusieurs images? (3, par exemple).

Si, mais je comptai me servir des images pour détecter si un objet “explosion” arrive sur sa dernière image et le supprimer dans ce cas. :wink:
Mais si il y a qu’une seule image, faut faire la manip de mon msg précédent (il doit en exister d’autres).

Dans ce genre de cas, un évènement à retardement serait indiqué, je pense.

On crée un évènement à retardement en tant que sous-évènement, on lui fixe un temps d’attente à 1 seconde, et on efface l’objet explosion.

Dommage que l’extension “Evènement à retardement” ne soit pas cochée par défaut dans GD (comme évènement Fonction d’ailleurs).
Pas mal de monde va zapper cet élément sans s’en rendre compte.

Mais si il y a plusieurs explosions en même temps, ça ne va pas du tout, bref, l’événement à retardement n’est pas adapté à ce genre d’utilisations. :wink:

Merci beaucoup, ça marche ^-^!

C’est vraiment génial d’avoir une communauté à l’écoute et si sympa’, et ça tombe bien étant donné que ça va être loin d’être une de mes dernières questions xD!

PS: Autre noobquestion (qui est, je vous l’avoue, HS :imp: !) : Est-il possible de copier/coller tous les évènements d’une scène d’un coup ?

Non, mais tu peux utiliser un lien (clic dans le ruban, section “évènement”, bouton “ajouter”, lien). Choisis la scène où il y a tes évènements, renseigne leur numéro et utilise-en plusieurs si nécessaire.

Oui, en fait, au lieu de copier tes événements dans chaque niveaux de ton jeu, ce qui est assez contraignant car le moindre changement doit être opéré dans toutes les scènes, il faut utiliser les liens.
En fait, tu mets les événements dans une scène, et dans les autres scènes qui ont besoin des même événements, tu mets un lien vers cette scène (celle qui contient les événements) (clic-droit dans l’éditeur d’événement > lien). Tu renseignes le nom de la scène qui possède les événements dont tu as besoin dans la scène où tu es.

Ok, merci encore!

Bon, je me suis lancé dans la conception d’une sorte de “Shoot them all”, assez classique quoi, histoire de tester quelques petites choses ^^’… Et je suis déjà victime de quelques problèmes xD! Je pose mes questions ici, au lieu de polluer le forum d’innombrables topics :p?

Par exemple: J’ai décidé de faire une animation lorsque le joueur tir, c’est à dire lorsqu’il y a clique gauche.

Condition: Le bouton Left de la souris est appuyé
Action: Jouer l’animation actuelle de Tireur

Cependant, lorsque j’appuie un fois sur le bouton left, eh bien le tireur reste sur l’image de fin de l’animation ^^’! Alors que ce que je souhaite, c’est qu’il reprenne son apparence normal lorsque le bouton left n’est pas appuyé (j’espère que je m’exprime assez clairement ^^’)

Essaye ça :

CONDITION : Le bouton left de la souris est appuyé ACTION : changer l'animation du héros en animation de tir

Deuxième évènement :

CONDITION : Le bouton left de la souris est appuyé (condition inversée(en bas à droite de la fenêtre d'édition de condition)) ACTION : changer l'animation du héros en animation normale

Met le signe = lors du changement d’animation :wink:

Aaaah, c’est malin :mrgreen: !

Merci ^^