AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -56%
Ampli Home Cinema Denon AVR-X1700H à 349€
Voir le deal
349 €

 

 While, do, Boucle infinie...

Aller en bas 
5 participants
AuteurMessage
keïtchi
Utilisateur confirmé: Rang **
keïtchi


Messages : 366
Localisation : Don't Follow me, I'm lost too!

While, do, Boucle infinie... Empty
MessageSujet: While, do, Boucle infinie...   While, do, Boucle infinie... EmptyJeu 22 Nov 2007 - 20:44

Voila, je voudrais utiliser une boucle pour le deplacement
de mes monstre, pour qu'il s'arrete a 1 pixel du decord
donc j'avez penser utilser while ou do exemple:
while (place_free(x,y+1))
{
y+=1;
}
else
{
y=yprevious;
}
je penser "il vas faire y+1 en boucle jusqu'a ce que ca place ne soit plus free"
Bha non, monsieur il me fait une boucle infinie qui fait bugé le pc. xD
En plus avec while else marche pas =/
Quelqu'un pourais m'aidez s'il vous plais. ange
Revenir en haut Aller en bas
Devil37
Utilisateur confirmé: Rang *****
Devil37


Messages : 1815

While, do, Boucle infinie... Empty
MessageSujet: Re: While, do, Boucle infinie...   While, do, Boucle infinie... EmptyJeu 22 Nov 2007 - 20:55

Mmhh, les while ce n'est pas ce qu'il y a de plus décent ...
Je crois que ton else n'a rien à faire là, essaye :
Code:
while (place_free(x,y+1))
{
y+=1;
}
if(place_free(x,y+1))
{
y=yprevious;
}

Je ne suis pas un pro des place_free(), donc j'ai juste corrigé le code ...
Revenir en haut Aller en bas
Innoson
Utilisateur confirmé: Rang ****



Messages : 927
Projet Actuel : Aller voir la bas si jy suis.

While, do, Boucle infinie... Empty
MessageSujet: Re: While, do, Boucle infinie...   While, do, Boucle infinie... EmptyVen 23 Nov 2007 - 20:02

Bien, place_free(x,y) estune fonction qui permet de vérifier si, l'objet courant se place a x et y et qu'il y a un objet solid en collision (true = aucun objet solid a la position).
Je croit qe le code de Damnator est juste mais les boucle sont toujour mauvais signe si elle sont mal utiliser : méfiance !
Revenir en haut Aller en bas
master47
Utilisateur confirmé: Rang *****
master47


Messages : 2368
Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio

While, do, Boucle infinie... Empty
MessageSujet: Re: While, do, Boucle infinie...   While, do, Boucle infinie... EmptyVen 23 Nov 2007 - 21:31

non le code de damator est pas bon.

ca bouffe du memory pour rien

tu bouge jusqu'a ce que tu arrives en position au dessus d'un object tu retourne a ta pos d'origine, l'interêt je le voit pas Very Happy

mais un cnseil n'utilise pas de while pour faire ce genre de calculs, ca bouffe 2x + qu'un for et ca rend pas le resultat immédiat donc ca rend la demarche de ton bonhomme moche. Car une fois tu verras ton bonhomme en l'air et le step après direc sur le sol donc ca donne rien Wink

EDIT :

voila une petite correction de ton code :

Code:

if place_free(x,y+2)
{
y += 1
}

il va s'aretter au dessus de ton sol

EDIT 2 :

voila ce que tu aurais obtenu avec un while mais avec un for

Code:

for(i=0;place_free(x,y+i+1);i+=1)
    {
    y+=i ;
    }
Revenir en haut Aller en bas
http://theperfectpattern.tumblr.com
Devil37
Utilisateur confirmé: Rang *****
Devil37


Messages : 1815

While, do, Boucle infinie... Empty
MessageSujet: Re: While, do, Boucle infinie...   While, do, Boucle infinie... EmptyVen 23 Nov 2007 - 22:13

Désolé, je n'ai pas répondu à la question mais juste corrigé le code, je ne sais pas utiliser les place_free() ( ou du moins cela ne me sert pas pour les jeux que je fait ... )
Revenir en haut Aller en bas
keïtchi
Utilisateur confirmé: Rang **
keïtchi


Messages : 366
Localisation : Don't Follow me, I'm lost too!

While, do, Boucle infinie... Empty
MessageSujet: Re: While, do, Boucle infinie...   While, do, Boucle infinie... EmptyVen 23 Nov 2007 - 23:02

en faite c'était un exemple, car en faite le vrais problem
c'est de faire reculer les ennemis dans mon jeux,
J'utilise un system de path et de grille ce qui rend la chose encor moins facile j'avais pensser utiliser une boucle plutôt que:
Code:

if (place_free(x,y-16))
{
path_start(path_recule,5,0,true);
if (!mp_grid_path(global.grid,path_recule,x,y,x,y-16,true))
{
path_delete(path_recule);
}
}
else
{
if (place_free(x,y-15))
{
path_start(path_recule,5,0,true);
if (!mp_grid_path(global.grid,path_recule,x,y,x,y-15,true))
{
path_delete(path_recule);
}
}
else
{
if (place_free(x,y-14))
{
path_start(path_recule,5,0,true);
if (!mp_grid_path(global.grid,path_recule,x,y,x,y-14,true))
{
path_delete(path_recule);
}
}
else
{
.................
else
{
if (place_free(x,y-1))
{
path_start(path_recule,5,0,true);
if (!mp_grid_path(global.grid,path_recule,x,y,x,y-1,true))
{
path_delete(path_recule);
}
}
}
}
}
.....
}
vous voyer le truc quoi...
si je pouver éviter d'avoir a m'arquer ca pour les 4 directions
en faisant une boucle ca rendrez mon code plus propre,
moins gourmand,baucoup moins long et plus compréensible ^^
Revenir en haut Aller en bas
Scheb
Utilisateur confirmé: Rang *
Scheb


Messages : 176
Localisation : Dans une galaxie lointaine, très lointaine... vers Nice^^(France,côte d'azur)
Projet Actuel : GAIA v2.0

While, do, Boucle infinie... Empty
MessageSujet: Re: While, do, Boucle infinie...   While, do, Boucle infinie... EmptySam 24 Nov 2007 - 19:24

je viens de decouvrir un truc important sur les boucles:

si on utilise une boucle disant "fait ça jusqu'à ce que ça soit = 2 (par exemple)" et que si c'est deja = 2 au commencement de la boucle, ça plente!

donc il faut bien verifier que l'on soit sûr que la "condition" n'est pas "vrai" des le debut!

(même si ça ne resoud pas la question donné, certain cbnateur ou cbnatrice qui ont des probleme a ce niveau la, le saurons)
Revenir en haut Aller en bas
http://afjp-afjp.eurogoo.com/
Contenu sponsorisé





While, do, Boucle infinie... Empty
MessageSujet: Re: While, do, Boucle infinie...   While, do, Boucle infinie... Empty

Revenir en haut Aller en bas
 
While, do, Boucle infinie...
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» problème de boucle infinie.
» Boucle infinie, comportement illogique, bref, pétage de plomb.
» Rotation infinie...
» Boucle for
» boucle

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: