Hola leyendo el manual del game maker dice que que los script pueden expresar valores para lo cual se utiliza la sentencia RETURN
Return (expresion)
pero luego dice:
La ejecucion del script termina en la sentencia return
Alguno de ustedes que tienen experiencia con game maker pueden darme un ejemplo de como utilizarlo, es que el ejemplo del manual es demasiado simplon.
Veran estoy utilizando un script en una accion de un enemigo pero esta se realiza infinitamente y no se como pararla, gracias
Voy a ponerte varios ejemplos.
Puedes hacer un script que sume 2 números y retorne el resultado de la suma:
Vamos a llamarlo suma y tendrá 2 parámetros, que son los 2 números que tiene que sumar.
return argument0+argument1
Entonces si por ejemplo pones el código en algún objeto del juego:
resultado=suma(4,5)
Entonces la variable resultado valdrá 4+5=9.
Ahora otro ejemplo, que es un poco diferente del primero.
Este sería el script, que llamaremos get_dia_semana:
if current_weekday=0 { return "Domingo"; } else
if current_weekday=1 { return "Lunes"; } else
if current_weekday=2 { return "Martes"; } else
if current_weekday=3 { return "Miércoles"; } else
if current_weekday=4 { return "Jueves"; } else
if current_weekday=5 { return "Viernes"; } else
if current_weekday=6 { return "Sábado"; }
Entonces si en un código pones:
show_message(get_dia_semana())
Te saldrá un mensaje con el día de la semana.
Espero que te haya servido, saludos!
Agrego algo que aprendí programando en PHP, C++ y Java xD
La sentencia Return lo único que hace (únicamente en las funciones, en este caso scripts) es devolver un resultado dentro de un script, es decir que lo que dice el manual está bien eso de que al usarse se termina con el ciclo del script ya que, en teoría, si pusimos return quiere decir que ya no tenemos más script que ejecutar y por ende queremos saber en que quedó nuestra ejecución del script, es decir que retornaría a su llamado (cuando llamamos al script desde nuestro objeto) con lo que lo programamos para que retorne como es en los ejemplos del amigo Mega G.
Con respecto al ejemplo de los días, me parece algo erróneo utilizar múltiples return, en su lugar yo usaría una variable var y un switch para optimizar el código y luego retornaría a la variable:
[gml]
var day;
switch (current_weekday) {
case 0:
day = "Domingo";
break;
case 1:
day = "Lunes";
break;
case 2:
day = "Martes";
break;
case 3:
day = "Miercoles";
break;
case 4:
day = "Jueves";
break;
case 5:
day = "Viernes";
break;
case 6:
day = "Sábado";
break;
}
return day;
[/gml]
De esta forma el código queda un poco más largo pero es más eficiente por la misma estructura del switch en comparación del if (lo aprendí gracias al amigo Texic!).