Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Yoo en Febrero 17, 2015, 08:24:04 PM

Título: MINIpreguntas
Publicado por: Yoo en Febrero 17, 2015, 08:24:04 PM
Hola a tohos, ahora vengo porque tengo unas minipreguntas que son las siguientes:

1.- ¿Como funciona este ciclo "while(true)"?       
Exp: Me refiero a lo que esta entre parentesis lo vi en un script. Ya sé que para que el ciclo funcione, lo que lleva entre parentesis debe ser cierto(true).Pero aki ya esta true como seria?

2.- ¿Los codigos en GML se leen de arriba para abajo,entonces...?   
Exp: En este caso de abajo(script), si la variable 2 es igual a cero se saldria del script, pero si la script esta en el evento step se repetiria de nuevo todo hasta la parte de tres(3|) donde comprobará si variable2 sigue siendo cero, y al resultar cierto lo de abajo osea la parte cinco(5|) ya no se realizaria, asi seria o como?

1|variable1=10;
2|instance_create(x,y,obj_ola)
3|if variable2 == 0
4|     exit;
5|variable3 += 1
Título: Re:MINIpreguntas
Publicado por: penumbra en Febrero 17, 2015, 09:00:20 PM
Cita de: Yoo en Febrero 17, 2015, 08:24:04 PM
Pero aki ya esta true como seria?
Si ya es true, el ciclo siempre se va a ejecutar, así de simple. Así como te puedes encontrar ejemplos de scripts buenos, te puedes encontrar con scripts "malos", que no tienen la manera más recomendable de hacer algo. No estoy diciendo que ese ciclo no funcione en el contexto que se usa, lo que digo es que en la mayoría de cursos de programación se hace hincapié en no usar ese tipo de condiciones, y al contrario, usar una condición que asegure la finalización del ciclo en algún momento.

Cita de: Yoo en Febrero 17, 2015, 08:24:04 PM
pero si la script esta en el evento step se repetiria de nuevo todo hasta la parte de tres(3|) donde comprobará si variable2 sigue siendo cero, y al resultar cierto lo de abajo osea la parte cinco(5|) ya no se realizaria, asi seria o como?
Si el script está en STEP y si variable2 es igual a 0, el script llegará hasta la línea 4, una y otra vez. El script ejecutará la línea 5 sólo cuando variable2 se cambie a un número distinto a 0.
Título: Re:MINIpreguntas
Publicado por: Yoo en Febrero 18, 2015, 02:35:17 AM
OK, ya entendí entonces es así!!!  pero como seria si ese codigo esta un evento (ya no en un script) como STEP, entonces seria lo mismo???
Ha si, y el script que contiene "while(true)" tiene adentro unas sentencias que, si son verdaderas, dan acciones y al final "exit"  osea se sale del script, eso haria que no se repita siempre, no ? (osea solo se repetirá cuando las sentencias son falsas)
Yyyy, me olvide de la preguntas NUMERO 3 : ¿La funcion random(x) puede dar como resultado cero exacto?
Espero tu respuestas GRACIAS!  :D
Título: Re:MINIpreguntas
Publicado por: Clamud en Febrero 18, 2015, 04:10:37 AM
La expresión más apropiada para terminar un ciclo es break, usa exit cuando estés seguro de que no hay código posterior que deba ejecutarse.

Y random(x) si devuelve 0, pero es muy poco probable y depende mucho de la semilla que está asignada.