| Faire appel à des évênements différents | |
|
|
Auteur | Message |
---|
bko Débutant
Messages : 21
| Sujet: Faire appel à des évênements différents Jeu 16 Aoû 2012 - 15:10 | |
| Bonjour, je bloque sur un problème depuis plusieurs jours pourtant j'ai presque tout tenté. Voila le souci : - J'ai des objets qui tombent de haut en bas. Si l'objet tombent sur un autre objet en bas, alors je souhaite déclencher une série d’événements (changer l'instance, générer un nouvel objet....). Si l'objet tombe dans le vide alors je souhaite déclencher une autre série d’événements. Pour cela, j'ai codé comme suivant : - Code:
-
if (place_meeting(blok.x,blok.y+1,objet)) { event_user(0); } else event_user(1);
J'ai ensuite crée un événement user defined 0 et 1 dans lesquels je mets toutes mes actions. Ça fonctionne MAIS parfois (environ 20% du temps) un event se déclenche alors qu'il ne devrait pas. Dans ma condition, j'ai même tenté de supprimé l'appel à l'event et il arrive parfois à se déclencher quand même. J'attends vos avis, merci d'avance !
Dernière édition par bko le Jeu 16 Aoû 2012 - 22:53, édité 1 fois |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Faire appel à des évênements différents Jeu 16 Aoû 2012 - 17:29 | |
| C'est dans Step?
A tu conscience que event_user(1) est appelé en permanence? (jusqu'à toucher un bloc) ? |
|
| |
bko Débutant
Messages : 21
| Sujet: Re: Faire appel à des évênements différents Jeu 16 Aoû 2012 - 22:55 | |
| - arthuro a écrit:
A tu conscience que event_user(1) est appelé en permanence? (jusqu'à toucher un bloc) ? NON !! Je croyais que mon event user ne s’exécutait que lorsque mon code l'appelait comme ci dessous : - Code:
-
if (place_meeting(blok.x,blok.y+1,objet)) { event_user(0); }
Mais alors quelle est la solution ? tu parles de step mais je n'en utilise aucun. Merci |
|
| |
SPLN Utilisateur confirmé: Rang ***
Messages : 588 Localisation : Sur son ordinateur *vous vois* arrêtez de me regarder comme ça Projet Actuel : En quête de projet(s)!
Mes projets:
SP Lecteur Multimedia (Stand by)
S-Portable Graphics (demo1.8 is out! demo2.0 is planned)
SSB RPG (Stand by)
| Sujet: Re: Faire appel à des évênements différents Ven 17 Aoû 2012 - 4:14 | |
| Que ce soit un step ou draw si tu mets: - Code:
-
if (place_meeting(blok.x,blok.y+1,objet)) { event_user(0); } else event_user(1); Ça veut dire que Si place_meeting(blok.x,blok.y+1,objet) Alors event_user(0) Sinon event_user(1). Donc s'il est présent dans un step/draw l'event_user(1) sera exécute quasiment en permanence si la condition n'est pas juste à ce moment là. Peut-être peux-tu nous dire dans quel event tu exécute ce code ça peut nous aider. |
|
| |
bko Débutant
Messages : 21
| Sujet: Re: Faire appel à des évênements différents Ven 17 Aoû 2012 - 8:40 | |
| OK donc déjà ça ne peux pas marcher pour moi. Voici mon exemple : Il s'agit d'event pour un bloc carré appelé blok1. Dans l'event press space j'ai ce code la : - Code:
-
if (place_meeting(blok.x,blok.y+1,objet)) { event_user(0); } else event_user(1);
Et on peut voir mes 2 user event qui s’exécutent en permanence comme je viens d'apprendre |
|
| |
supmaster004 Utilisateur confirmé: Rang *****
Messages : 2189 Localisation : x=23.256842 y=43.456879 Projet Actuel : Faire des parodies de jeux en 1h
| Sujet: Re: Faire appel à des évênements différents Ven 17 Aoû 2012 - 9:07 | |
| et... qu'est ce qui s'execute dans ces events en fait? Si ça se trouve, tu as codé la même chose à d'autres endroits. |
|
| |
bko Débutant
Messages : 21
| Sujet: Re: Faire appel à des évênements différents Ven 17 Aoû 2012 - 9:13 | |
| Il y a toute une série d'actions :
event 0 = si le bloc tombe dans le vide - destroy de l'instance - génération d'un nouveau bloc en haut
event 1 = si le bloc touche un autre bloc - changement de l'instance - génération d'un nouveau bloc |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Faire appel à des évênements différents Ven 17 Aoû 2012 - 15:03 | |
| Clic sur show_information de ton blok, copie-colle nous le texte qui décrit complètement ton blok sur le forum. |
|
| |
bko Débutant
Messages : 21
| Sujet: Re: Faire appel à des évênements différents Lun 20 Aoû 2012 - 8:26 | |
| Le show information est vraiment très long car je dois avoir beaucoup de choses inutiles, mais du coup il n'existe pas un moyen de déclencher un event sur une condition et non qu'il s'éxécute en permanence comme dans mon cas avec event user ? |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Faire appel à des évênements différents Lun 20 Aoû 2012 - 13:58 | |
| Je te conseil de quand même l'envoyer si tu espère une réponse, car on ne comprend pas vraiment tes soucis. |
|
| |
bko Débutant
Messages : 21
| Sujet: Re: Faire appel à des évênements différents Lun 20 Aoû 2012 - 15:58 | |
| Le souci est pourtant "simple" : Je souhaite que toutes les actions incluses dans mon event user ne s’exécutent que si la condition ci dessous est vérifiée : - Code:
-
if (place_meeting(blok.x,blok.y+1,objet)) { event_user(0); }
Le problème est qu'on ma confirmé ici qu'un event user s’exécute en permanence. Donc la question est de savoir comment déclencher un event uniquement si une condition est remplie. je ne pense pas que le show information puisse aider mais je peux me tromper ! |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Faire appel à des évênements différents Lun 20 Aoû 2012 - 16:02 | |
| Bah la ça devrais être bon, ça doit être ta condition qu'est pas bonne. Tu veux quoi exactement? Que si t'est sur un block ça t’exécute ton event? Ça donnerais ça normalement: - Code:
-
if (place_meeting(x,y+1,blok)) { event_user(0); } |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Faire appel à des évênements différents Lun 20 Aoû 2012 - 16:25 | |
| - Citation :
Le problème est qu'on ma confirmé ici qu'un event user s’exécute en permanence. Donc la question est de savoir comment déclencher un event uniquement si une condition est remplie.
J'ai pas dit ça. Tu avais un block if/else qui executait donc un des deux user_event (0 ou 1) Si il était dans step, tu executerait 30 fois par secondes user_event(0) ou user_event(1) . |
|
| |
bko Débutant
Messages : 21
| Sujet: Re: Faire appel à des évênements différents Lun 20 Aoû 2012 - 16:57 | |
| - onilink_ a écrit:
Tu veux quoi exactement? Que si t'est sur un block ça t’exécute ton event?
C'est ca, en gros : - Si mon bloc touche un autre bloc, alors je fais appel a event 0 qui contient tout un tas d'actions (génération nouveau bloc, lui donner une vitesse, un sens....). - Si mon bloc ne touche aucun bloc, alors je fais appel a event 1 qui contient d'autres actions. Je vais essayer avec le code que tu as donné. Merci. Arthuro -> Désolé j'avais mal compris ! |
|
| |
bko Débutant
Messages : 21
| Sujet: Re: Faire appel à des évênements différents Mar 21 Aoû 2012 - 11:32 | |
| Bon alors je bloque vraiment. Dans mon code, même en mettant juste ça, le programme exécute parfois les actions contenues dans l'event user 1 alors qu'il ne figure nulle part dans le code et qu'aucune action ni condition n'y fait appel : - Code:
-
if (place_meeting(x,y+1,blok)) { event_user(0); }
La je bloque |
|
| |
marty Utilisateur confirmé: Rang ***
Messages : 697 Projet Actuel : laby-ereinte !
| Sujet: Re: Faire appel à des évênements différents Mar 21 Aoû 2012 - 13:04 | |
| envoi ton gmk. sinon "désactive"le block qui a fini sa course en le transformant par un autre objet car si tu utilise le même objet pour tout il y a sans doute des confusions
|
|
| |
bko Débutant
Messages : 21
| Sujet: Re: Faire appel à des évênements différents Mer 22 Aoû 2012 - 22:27 | |
| Merci je fais des essais et vous tient au courant. |
|
| |
Contenu sponsorisé
| Sujet: Re: Faire appel à des évênements différents | |
| |
|
| |
| Faire appel à des évênements différents | |
|