AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 [Résolu]Condition bugguer ou mal exécuté

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
kujaff
Très bonne participation
avatar

Messages : 127
Localisation : Dans mon Atelier
Projet Actuel : Puzzle/Reflexion

MessageSujet: [Résolu]Condition bugguer ou mal exécuté   Lun 15 Sep 2014 - 21:04

Salut, j'ai un soucis avec une condition qui s’exécute dans un step...

Code:
if obj_id.remplie == 1
{
if !collision_rectangle(x+48,y+8,x+56,y+40,obj_tuyau_1,true,true) || !collision_rectangle(x+48,y+8,x+56,y+40,obj_tuyau_3,true,true) || !collision_rectangle(x+48,y+8,x+56,y+40,obj_tuyau_4,true,true)
{
global.ini = 2
}
}

obj_id.remplie est bonne, elle passe bien a 1 au moment voulu. Le soucis c'est les collisions. S'il n'y a pas l'objet A OU l'objet B OU l'objet C, alors -> blabla...

Le soucis est donc que objet a coté ou pas, la variable globa.ini passe a 2 dès que obj_remplie == 1... Problème d’exécution ou c'est moi ?

Même avec un Else, le résultât reste le même... Pourtant, l'objet est bien a coté ! Et les coordonnées sont bonne... Même en éloignant la collision de "mère", ça foire...

Code:
{
global.ini = 2
}
else
{
global.ini = 1
}

Cordialement.

_________________


Dernière édition par kujaff le Mar 16 Sep 2014 - 1:56, édité 1 fois
Revenir en haut Aller en bas
red-error
Utilisateur confirmé: Rang ****
avatar

Messages : 1015
Projet Actuel :

MessageSujet: Re: [Résolu]Condition bugguer ou mal exécuté   Lun 15 Sep 2014 - 21:52

La condition est remplie si une des trois non-collisions est remplie (si 1 ou 2 ou 3).

Si tu veux que ça se remplisse tant que y'a pas de collision du tout, tu veux peut-être utiliser des && (et) ?
Revenir en haut Aller en bas
kujaff
Très bonne participation
avatar

Messages : 127
Localisation : Dans mon Atelier
Projet Actuel : Puzzle/Reflexion

MessageSujet: Re: [Résolu]Condition bugguer ou mal exécuté   Lun 15 Sep 2014 - 22:47

Bah, c'est le but que se soit l'une des trois collision ^^'

Citation :
La condition est remplie si une des trois non-collisions est remplie (si 1 ou 2 ou 3)
Sauf que mon soucis, c'est que les conditions de non-collision ne sont pas prit en compte, en gros, si je dois résumer ce qui se passe par un code :

Code:
if obj_id.remplie == 1
{
global.ini = 2
}
}

Ça donnerai ça... Or je veux :

Code:
if obj_id.remplie == 1
{
if !collision_rectangle(x+48,y+8,x+56,y+40,obj_tuyau_1,true,true) || !collision_rectangle(x+48,y+8,x+56,y+40,obj_tuyau_3,true,true) || !collision_rectangle(x+48,y+8,x+56,y+40,obj_tuyau_4,true,true)
{
global.ini = 2
}
}

Citation :
Si tu veux que ça se remplisse tant que y'a pas de collision du tout, tu veux peut-être utiliser des && (et) ?

ça se remplie (collision ou pas), la variable global.ini = 2 signifie qu'il n'y a pas de collision a coté de lui, donc le liquide tombe par terre, sauf que tuyau a coté ou pas, la variable global.ini passe a 2 dès que le tuyau est remplie... Or je veux que quand le tuyau est remplie, il vérifie s'il y a un tuyau pour réceptionner, sinon, le liquide tombe par terre (global.ini = 2)

Donc, pour résumer mon soucis, la ligne de code suivant n'est pas prit en compte

Code:
if !collision_rectangle(x+48,y+8,x+56,y+40,obj_tuyau_1,true,true) || !collision_rectangle(x+48,y+8,x+56,y+40,obj_tuyau_3,true,true) || !collision_rectangle(x+48,y+8,x+56,y+40,obj_tuyau_4,true,true)

-------------------------------------

En faite, j'ai poussé la recherche a fond... Les collisions/non-collisions sont bonne, c'est donc bien l’exécution qui était mauvaise...

Voici le code que j'ai modifié pour que ça marche nickel.

Code:
 if obj_id.remplie == 1 && fin == 0
{
if (collision_rectangle(x+48,y+8,x+56,y+40,obj_tuyau_1,true,true) || collision_rectangle(x+48,y+8,x+56,y+40,obj_tuyau_3,true,true) || collision_rectangle(x+48,y+8,x+56,y+40,obj_tuyau_5,true,true)||  collision_rectangle(x+48,y+8,x+56,y+40,obj_tuyau_sortie_1,true,true))
{
global.ini = 1
fin = 1
}
else
{
global.ini = 2
fin = 1
}
}

Le soucis était donc que la condition était répété en boucle ! Donc forcement, la variable global.ini ne correspondais plus vraiment vue que ce code est dans plusieurs objet (tuyau de formes différentes). Donc... Normal... J'ai donc rajouter une variable "fin" en local, qui permet donc de "bloquer" cette "boucle". Et voilà... C’était vraiment... "Simple", même si j'avais déjà essayer, j'avais dut, une fois encore, une erreur ^^'

Ducoup j'ai pue résoudre on soucis ! :fière: et je partage la résolution, au cas où ça peut servir.

Cordialement.

_________________
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: [Résolu]Condition bugguer ou mal exécuté   

Revenir en haut Aller en bas
 
[Résolu]Condition bugguer ou mal exécuté
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» La condition de vie à bord à travers les époques
» Condition féminine au canada
» Interview exclusive de Pierre Sautarel : Fdesouche.com persécuté
» S’ils m’ont persécuté, ils vous persécuteront aussi. — Jean 15:20.
» Mise en condition avant projection au Mali des paras

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: