AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment :
Bon plan achat en duo : 2ème robot cuiseur ...
Voir le deal
600 €
Le Deal du moment : -28%
Précommande : Smartphone Google Pixel 8a 5G ...
Voir le deal
389 €

 

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

Aller en bas 
2 participants
AuteurMessage
kujaff
Très bonne participation
kujaff


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

[Résolu]Condition bugguer ou mal exécuté Empty
MessageSujet: [Résolu]Condition bugguer ou mal exécuté   [Résolu]Condition bugguer ou mal exécuté EmptyLun 15 Sep 2014 - 23: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.

_________________
[Résolu]Condition bugguer ou mal exécuté 443584sprtitre


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


Messages : 1015
Projet Actuel : [Résolu]Condition bugguer ou mal exécuté Bas-machoire2000

[Résolu]Condition bugguer ou mal exécuté Empty
MessageSujet: Re: [Résolu]Condition bugguer ou mal exécuté   [Résolu]Condition bugguer ou mal exécuté EmptyLun 15 Sep 2014 - 23: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
kujaff


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

[Résolu]Condition bugguer ou mal exécuté Empty
MessageSujet: Re: [Résolu]Condition bugguer ou mal exécuté   [Résolu]Condition bugguer ou mal exécuté EmptyMar 16 Sep 2014 - 0: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.

_________________
[Résolu]Condition bugguer ou mal exécuté 443584sprtitre
Revenir en haut Aller en bas
Contenu sponsorisé





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

Revenir en haut Aller en bas
 
[Résolu]Condition bugguer ou mal exécuté
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu] Affichage aide execute code
» [Résolu] Variable locale "image_speed" non exécuté
» [résolu] Nom d'une ressource pour une condition
» [Résolu] Variable selon une condition
» [Résolu] Plusieurs possibilitées dans une condition

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: