AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-50%
Le deal à ne pas rater :
-50% Baskets Nike Air Huarache Runner
69.99 € 139.99 €
Voir le deal

 

 Faire appel à des évênements différents

Aller en bas 
+2
arthuro
bko
6 participants
AuteurMessage
bko
Débutant



Messages : 21

Faire appel à des évênements différents Empty
MessageSujet: Faire appel à des évênements différents   Faire appel à des évênements différents EmptyJeu 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
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

Faire appel à des évênements différents Empty
MessageSujet: Re: Faire appel à des évênements différents   Faire appel à des évênements différents EmptyJeu 16 Aoû 2012 - 17:29

C'est dans Step?

A tu conscience que event_user(1) est appelé en permanence? (jusqu'à toucher un bloc) ?

_________________
Faire appel à des évênements différents PochetteFaire appel à des évênements différents Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
bko
Débutant



Messages : 21

Faire appel à des évênements différents Empty
MessageSujet: Re: Faire appel à des évênements différents   Faire appel à des évênements différents EmptyJeu 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
Revenir en haut Aller en bas
SPLN
Utilisateur confirmé: Rang ***
SPLN


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)

Faire appel à des évênements différents Empty
MessageSujet: Re: Faire appel à des évênements différents   Faire appel à des évênements différents EmptyVen 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.

_________________
SP Lecteur Multimedia
I am an Faire appel à des évênements différents Gmq4 in the GM Quiz!
Revenir en haut Aller en bas
http://sp-lecteur-multimedia.skyrock.com/
bko
Débutant



Messages : 21

Faire appel à des évênements différents Empty
MessageSujet: Re: Faire appel à des évênements différents   Faire appel à des évênements différents EmptyVen 17 Aoû 2012 - 8:40

OK donc déjà ça ne peux pas marcher pour moi.

Voici mon exemple :

Faire appel à des évênements différents 963591cbna

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

Revenir en haut Aller en bas
supmaster004
Utilisateur confirmé: Rang *****
supmaster004


Messages : 2188
Localisation : x=23.256842 y=43.456879
Projet Actuel : Faire des parodies de jeux en 1h

Faire appel à des évênements différents Empty
MessageSujet: Re: Faire appel à des évênements différents   Faire appel à des évênements différents EmptyVen 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.

_________________
Spoiler:

L'IRC du cbna: IRC du cbna
projets terminés: prédation mouse vs keyboard ACII OC_ nintendo nightmare fuyez lavanville
Revenir en haut Aller en bas
bko
Débutant



Messages : 21

Faire appel à des évênements différents Empty
MessageSujet: Re: Faire appel à des évênements différents   Faire appel à des évênements différents EmptyVen 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
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

Faire appel à des évênements différents Empty
MessageSujet: Re: Faire appel à des évênements différents   Faire appel à des évênements différents EmptyVen 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.

_________________
Faire appel à des évênements différents PochetteFaire appel à des évênements différents Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
bko
Débutant



Messages : 21

Faire appel à des évênements différents Empty
MessageSujet: Re: Faire appel à des évênements différents   Faire appel à des évênements différents EmptyLun 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 ?
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

Faire appel à des évênements différents Empty
MessageSujet: Re: Faire appel à des évênements différents   Faire appel à des évênements différents EmptyLun 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.

_________________
Faire appel à des évênements différents PochetteFaire appel à des évênements différents Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
bko
Débutant



Messages : 21

Faire appel à des évênements différents Empty
MessageSujet: Re: Faire appel à des évênements différents   Faire appel à des évênements différents EmptyLun 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 !

Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Faire appel à des évênements différents Empty
MessageSujet: Re: Faire appel à des évênements différents   Faire appel à des évênements différents EmptyLun 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);
}

_________________
Faire appel à des évênements différents Runningpotato1Faire appel à des évênements différents TvF6GED Faire appel à des évênements différents MdetltS
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

Faire appel à des évênements différents Empty
MessageSujet: Re: Faire appel à des évênements différents   Faire appel à des évênements différents EmptyLun 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) .

_________________
Faire appel à des évênements différents PochetteFaire appel à des évênements différents Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
bko
Débutant



Messages : 21

Faire appel à des évênements différents Empty
MessageSujet: Re: Faire appel à des évênements différents   Faire appel à des évênements différents EmptyLun 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 !
Revenir en haut Aller en bas
bko
Débutant



Messages : 21

Faire appel à des évênements différents Empty
MessageSujet: Re: Faire appel à des évênements différents   Faire appel à des évênements différents EmptyMar 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 Sad

Revenir en haut Aller en bas
marty
Utilisateur confirmé: Rang ***
marty


Messages : 697
Projet Actuel : laby-ereinte !

Faire appel à des évênements différents Empty
MessageSujet: Re: Faire appel à des évênements différents   Faire appel à des évênements différents EmptyMar 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

Revenir en haut Aller en bas
bko
Débutant



Messages : 21

Faire appel à des évênements différents Empty
MessageSujet: Re: Faire appel à des évênements différents   Faire appel à des évênements différents EmptyMer 22 Aoû 2012 - 22:27

Merci je fais des essais et vous tient au courant.
Revenir en haut Aller en bas
Contenu sponsorisé





Faire appel à des évênements différents Empty
MessageSujet: Re: Faire appel à des évênements différents   Faire appel à des évênements différents Empty

Revenir en haut Aller en bas
 
Faire appel à des évênements différents
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Questions ordre appel évènements [trouvé]
» Peut-on faire plusieurs parallax scrolling différents simultanément ?
» Aide pour différents trucs en GML
» Je Lance UN APPEL!!
» Gérer différents états

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: