Comunidad Game Maker

Ayuda => Desarrollo de Scripts => Mensaje iniciado por: dixon en Noviembre 17, 2019, 01:36:43 am

Título: execute_string()
Publicado por: dixon en Noviembre 17, 2019, 01:36:43 am
Nombre del creador:  3dgeminis, Johann, Arcadian, somnus, Clamud y mi persona. En colaboración se logró el objetivo. Ver más (https://www.comunidadgm.org/preguntas-y-respuestas/como-lograr-un-'hola-mundo'-(solucionado)-en-parte/msg138522/#msg138522)
Breve descripción de su función: ejecuta el código que se encuentre en una cadena de texto. Solo soporta draw_text y draw_line.
Versión GM utilizada:  :GMS:   Game Maker Studio
Código del Script:

//posicion del primer parentesis
parentesis=string_pos("(",argument0);
funcion=string_copy(argument0,1,parentesis-1)
if(funcion="draw_text")
 {
 argument0=string_copy(argument0,string_pos("(",argument0)+1,string_length(argument0))
 var1=string_copy(argument0,1,string_pos(",",argument0)-1)
 var1=real(var1)
 argument0=string_copy(argument0,string_pos(",",argument0)+1,string_length(argument0))
 var2=string_copy(argument0,1,string_pos(",",argument0)-1)
 var2=real(var2)
 argument0=string_copy(argument0,string_pos(',',argument0)+1,string_length(argument0))
 var3=string_copy(argument0,1,string_pos(")",argument0)-1)
 var3=string_replace_all(var3,'"',"");
 var3=string_replace_all(var3,"'","");
 }
if(funcion="draw_line")
 {
 argument0=string_copy(argument0,string_pos("(",argument0)+1,string_length(argument0))
 var1=string_copy(argument0,1,string_pos(",",argument0)-1)
 var1=real(var1)
 argument0=string_copy(argument0,string_pos(",",argument0)+1,string_length(argument0))
 var2=string_copy(argument0,1,string_pos(",",argument0)-1)
 var2=real(var2)
 argument0=string_copy(argument0,string_pos(",",argument0)+1,string_length(argument0))
 var3=string_copy(argument0,1,string_pos(",",argument0)-1)
 var3=real(var3)
 argument0=string_copy(argument0,string_pos(",",argument0)+1,string_length(argument0))
 var4=string_copy(argument0,1,string_pos(")",argument0)-1)
 var4=real(var4)
 }
 
///dibujando, este es el unico codigo que se debe ejecutar en un evento draw.
if(funcion="draw_text")
{
draw_text(var1,var2,var3)
}
if(funcion="draw_line")
{
draw_line(var1,var2,var3,var4)
}

Debe colocarse en un evento draw o dibujo.

Ejemplo1 : execute_string('draw_text(0,0,"Hola Mundo")')
Esto mostrará un Hola mundo en las coordenadas especificadas

Ejemplo2 : execute_string('draw_line(0,0,100,100)')
Esto mostrará una linea en las coordenadas especificadas.

El draw_text no soporta el caracter positivo (+), tampoco soporta la funcion string() y no reconoce las variables predeterminadas. Está en proceso de desarrollo.

Ejemplo de error: execute_string('draw_text(0,0,"La posicion x es: "+string(x))')
Esto dará un error porque no entiende eso, aún tengo que mejorarlo.