Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Eevee en Noviembre 24, 2012, 11:17:36 PM

Título: como funciona for?
Publicado por: Eevee en Noviembre 24, 2012, 11:17:36 PM
estuve leyendo un poco el manual que tienen en la comunidad y me encontre con esto
Citar

{

  for (i=0; i<=9; i+=1) lista = i+1;

}
arriba explica como funciona, pero para ser sincera no entendi bien  :'(
alguno me explica con palabras humanas parte por parte como funciona? pliss  :-[
Título: Re:como funciona for?
Publicado por: DarkKRuleR en Noviembre 25, 2012, 02:06:31 AM
Un ejemplo sencillo te lo explicará todo, es la forma más fácil.

for (i = 0; i < 5; i += 1) {show_message(i);}

eso mostrará estos mensajes en este orden:
0
1
2
3
4

eso lo explica todo. En palabras ese for hace "comenzamos con i=0 y hacemos X cosa, luego sumamos 1 a i, volvemos a hacer X cosa, volvemos a sumar 1 a i... y seguimos haciendo mientras i sea menor a 5. En el momento en que sumamos 1 a i e i valga 5 ya no hacemos X cosa y el for termina". hacer X cosa es lo que hay dentro de los {}. Con este ejemplo parece tontería pero los fors son la cosa más útil del mundo. Yo mismo los estoy usando ahora para programar un juego de cartas: para llevar la cuenta de las cartas de la baraja y tal es MUY necesario.

pd- for (i = 10; i > 20; i -= 1) en este caso este for no tiene sentido, pues comenzamos con i = 10, y como no es cierto que sea mayor que 20 pues falla y termina (como otro ejemplo, vamos xD)
Título: Re:como funciona for?
Publicado por: the_blade en Noviembre 25, 2012, 03:20:20 AM
te explico mas o menos de manera simple:
for (i = 0; i < 5; i += 1)

repite algo tantas veces como comprobaciones halla dentro del bucle, primer inicia la variable i a 0 (i=0)para que empieze a repetirse tal cosa desde el numero 0, y hasta que dicha variable no llegue al valor cinco, sumara 1 a i, (i += 1) y ejecutara el codigo dentro del bucle:
ejemplo:


Balas=30;
for(i=0;i<Balas;i+=1) //mientras i sea menor que 30 (Balas)
{
    draw_sprite(sprite0,-1,x+(i*15),y+100) //dibujara el sprite0 (Balas), 1 al lado de otra (30), con
//una separacion de i*15, donde i va a ser progresivo, dado que i+=1, implica que cada repeticion
//suma 1 a la variable y por lo tanto va separando la distancia en que se dibuja cada sprite
}


desde mi punto de vista es muy util esta funcion de hecho en mi juego http://www.comunidadgm.org/index.php?topic=17650.0 (The American Conqueror: The Unknow Coast), lo estoy usando mucho, ya sea para dibujar indicadores de municion disponible, menues del juego, menues desplegable y hasta para las cutscenes ultimamente, te recomiento esta funciones tiene infinitas utilidades.- Salu2.-
Título: Re:como funciona for?
Publicado por: elviskelley en Noviembre 25, 2012, 03:56:14 PM
Balas=30;
for(i=0;i<Balas;i+=1) //mientras i sea menor que 30 (Balas)
{
    draw_sprite(sprite0,-1,x+(i*15),y+100)

}

He marcado en rojo lo que quiero explicar, ya que muchos lo hacen pero no saben por que, y un copy paste no es bueno nunca.
Al colocar esto x+(i*15)  estas diciendo que la posicion "X" del nuevo sprite a dibujar sea con una separacion de 15 pixeles y la separacion sea igual a la cantidad del valor de "i" osea en palabras mas simples dice esto.
"X+ (valor de "i" tomando en cuenta 15 pixeles") lo que seria la separacion
En calculo matematico seria asi cada vez que dibuje un nuevo sprite Balas:
X+ (i * 15) si si fuera de momento i=1 seria dibujado asi i=15 osea x=15; pero siendo "i" = 30 seria asi el calculo i= al resultado de (30*15) daria esto i=450 entonces "x=450;" aqui se dibujaria el nuevo sprite Balas-.
Título: Re:como funciona for?
Publicado por: the_blade en Noviembre 25, 2012, 05:28:33 PM
es lo que puse elvis que se dibujan los sprites con una separacion pero quizas no me supe explicar. gracias por aclararlo.-
Título: Re:como funciona for?
Publicado por: Eevee en Noviembre 25, 2012, 07:44:51 PM
ahora si lo comprendí,  :D
muchas gracias
DarkKRuleR,  the_blade y elviskelley !
Título: Re:como funciona for?
Publicado por: romon_28 en Noviembre 26, 2012, 03:05:53 PM
de todas formas exiten 4 tipos de ciclos en el game maker
- for(inicion valor , condicion , aumento){ ... }
- do{ ... }until(condicion)
- while(condicion){ ... }
- repear(numero) {}

El "repear" seguramente te sera mas facil de usar al principio.
Título: Re:como funciona for?
Publicado por: Daz en Noviembre 26, 2012, 03:11:16 PM
Cita de: romon_28 en Noviembre 26, 2012, 03:05:53 PM
...

Seguramente quisiste decir "repeat", ¿verdad? :)


¡Saludos!