Comunidad Game Maker

Ayuda => Desarrollo de Scripts => Mensaje iniciado por: dixon2010 en Enero 03, 2010, 10:21:34 AM

Título: Dibuja variables, operaciones y expresiones l?gicas m?s f?cil
Publicado por: dixon2010 en Enero 03, 2010, 10:21:34 AM
* Nombre del creador: dixon2010  

* Breve descripci?n de su funci?n: Dibuja variables, operaciones y expresiones logicas simultaneamente

Ejemplo de variable: sprite_index ; devuelve el sprite usado
Ejemplo de operaci?n: (2/2); devuelve el cociente de 2 entre 2
Ejemplo de expresi?n l?gica: sprite_index=1 ; devuelve uno si es cierto de lo contrario devuelve cero

* Versi?n GM utilizada:     (http://s2.subirimagenes.com/imagen/previo/thump_4019782gm4.png) (http://www.subirimagenes.com/imagen-gm4-4019782.html) :GM5: :GM6: :GM7: :GM8:

draw_text_super="direction/x/y/5+5/(x/2)/image_speed/"
dtsx=10
dtsy=10
i5815=0;
variable="";
repeat(string_length(draw_text_super))
{
i5815+=1
chra5815=string_copy(draw_text_super,(frac(floor(i5815)/1000)*1000),1)
i5815+=((ord(chra5815)=39)+(ord(chra5815)=34))*1000
i5815+=100000*((chra5815="(")-(chra5815=")"))*(frac((frac(floor(floor(i5815)/1000)/1000)*1000)/2)=0)
if((chra5815="/")*(frac((frac(floor(floor(i5815)/1000)/1000)*1000)/2)=0)*(i5815<100000))
{
i5815+=0.01
str="draw_text(dtsx,dtsy+20*frac(i5815)*100,"+"string(variable)"+"+'= '+string("+variable+"))";
execute_string(str);
variable=""
}else{variable+=string_copy(draw_text_super,(frac(floor(i5815)/1000)*1000),1)}}


* Modo de uso:
1_colocar esta funcion en un formulario dentro del evento Draw Event
2_ Las variables, operaciones y expresiones l?gicas a dibujar, anotarlas en la funci?n draw_text_super separadas de una barra /, entre comillas.
3_ Las operaciones y expresiones l?gicas que usen la barra / para dividir, deber?n escribirse dentro de dos par?ntesis ( ).
4_las variables dtsx y dtsy fijan la posicion X y Y de la lista de variables, operaciones y expresiones l?gicas a dibujar.

* Ejemplo: http://www.2shared.com/file/11037597/a83d2737/draw_text_super.html
(http://img20.imageshack.us/img20/3430/dibujarvariablesyoperac.jpg) (http://img20.imageshack.us/i/dibujarvariablesyoperac.jpg/)

Título: Re: Dibujar variables m?s f?cil con draw_text_super
Publicado por: Alfonsos1 en Enero 04, 2010, 02:05:21 AM
Citar*Motivo:
Cuando creo un juego necesito comprobar valores de  variables y dibujo  el valor de las variables usando el draw_text(). Pero me molesta tener que modificar esta funci?n para cada variable ya que trabajo con muchas y luego a beses ya no tengo que dibujarlas.

por que no usas el debug mode?, esta ppara eso

Edit: ok, la verdad es que si se me hace tedioso tener que rescribir todo cada ves que pruebo el juego. Me recuerda cuando yo "programaba" en C++  y tambien tenia que imprimir en pantalla las variables para poder analizar el juego
Título: Re: Dibujar variables m?s f?cil con draw_text_super
Publicado por: dixon2010 en Enero 04, 2010, 04:15:33 PM
CitarRun in Debug mode. Corre el juego en Debug Mode (Modo de depuraci?n). En este modo puedes comprobar ciertos aspectos del juego. Es muy ?til cuando hay alg?n error. Pero esto es un poco mas avanzado.
Título: Re: Dibujar variables m?s f?cil con draw_text_super
Publicado por: calebor04 en Enero 12, 2010, 09:15:37 AM
gracias muy buen aporte .  :D una de las muchas cosas por las que considero que el debug de gamemaker es realmente malo.
Título: Re: Dibujar variables y operaciones m?s f?cil
Publicado por: somnus en Febrero 06, 2010, 12:10:49 AM
pues hasta ahora no me quejo del debug, tienes que guardar las variables si no quieres reescribirlas cada vez que testeas el engine.

aunque una ayuda extra nunca esta de mas.
Título: Re: Dibuja variables, operaciones y expresiones lógicas más fácil
Publicado por: dixon en Junio 24, 2021, 06:12:01 PM
Hola, saludos cordiales.  8)

Parece mentira que ya han pasado más de 10 años desde que cree este script y hoy vengo a traerle una actualización.
(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSjeKNG_Ja-NonTuooGRMw-3pqd5AMstVhPXmcfWZUD6-IG2dBmGF5g8A7yA3I&s)


Tengo achaques de viejo así que por favor déjenme explicar el origen y la utilidad del script antes de presentar las mejoras:
(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSX50NKkJ7LcCESZl2bXZaeAmFE8lmw6vReka7Are3fdy6wGcW-EgeZcXYjMQ&s)


Mi propósito era acelerar el desarrollo de video juegos permitiendo la visualización instantánea de variables acortando el tiempo de transcripción de las mismas y el tiempo de carga del juego.
(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQK-qsy60JISuXOVeU4x5x1_hkA1flzZ3feGXSp2oM0NYjwSSPYfQ4MhAtKyA&s)


Creo que no te entendí nada.
(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcREjvQO7eS4K9F2X3xN8sAhuJRsB7EnvOQNeAwtDtaPR1kYol6bxM65dgtrRgU&s)

Ya te explico mejor:
(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTT8HD0VTyhq8rgFHuL47mA_3tvba9wQKGNnhpuuQuqYP0u24lRGubn6S7MvA&s)


Con este script podemos verificar los valores de las variables de manera rápida sin estar escribiendo muchas veces el draw_text, además te muestra el nombre de la variable. Esto me sirvió mucho para programar complejos script y visualizar muchísimas variables.
(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR9VtOOBtY6HWGtap9DzfPx_nezKjN263RUhrlhGY0iSanfEVkpwBFasRxyqg&s)


¿Eso es todo?.
(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRB7tmYrBcCl9TJhSq-M8ZFSx-lP7TCyn099cWltUH4gmKq_EnIZxljaOOVsA&s)

No, este script supera al debug-mode, pero solo funciona en game maker 4 hasta game maker 8, lamentablemente a partir del game maker html5 se eliminó la función execute_string y el script perdió compatibilidad.
(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQnGbeLZHQuuXtDR4rbsx6ySOPEYf9axnuDTfeLKfqJA8ch2cBbTY6OO8do0A&s)


mmm.....
(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYK2qBIJNCMkIY30zVYPSNkATDlC7Pvqii88oyNbUmzhvLSACKFeibIuls22s&s)

La actualización: La mejora del script no es más que otro código muy diferente que cumple con el objetivo, funciona en todas las versiones pero se utiliza de manera diferente.

Código del nuevo script:
[gml]
//texto
txt="";
ver="txt";
vw00=room_width;
vh00=room_height;
dx=0;
dy=0;
sep00=20;//separacion entre lineas

//Posicionar cursor aquí
if(ver!='txt'){draw_text(dx,dy,'txt: '+string(txt));dy+=sep00;if(dy>vh00-sep00){dy=0;dx+=vw00/2}}
if(ver!='txt'){draw_text(dx,dy,'txt: '+string(txt));dy+=sep00;if(dy>vh00-sep00){dy=0;dx+=vw00/2}}
if(ver!='txt'){draw_text(dx,dy,'txt: '+string(txt));dy+=sep00;if(dy>vh00-sep00){dy=0;dx+=vw00/2}}
if(ver!='txt'){draw_text(dx,dy,'txt: '+string(txt));dy+=sep00;if(dy>vh00-sep00){dy=0;dx+=vw00/2}}
if(ver!='txt'){draw_text(dx,dy,'txt: '+string(txt));dy+=sep00;if(dy>vh00-sep00){dy=0;dx+=vw00/2}}[/gml]

Cómo usar el script:
1. Colocar el script en un evento draw.
2. Posicionar el cursor en donde dice: "posicionar cursor aquí".
3. Buscar en las herramientas del editor de código la opción "reemplazar texto".
4. Reemplazar el texto "txt" por el valor de la variable que queramos visualizar.
5. Hacer tres reemplazos por cada variable, es decir presionar "reemplazar " tres veces. Esto modificará inmediatamente el script adaptándolo a tus necesidades.

Tu código no es muy agradable.
(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR4-sdTcNg-SA8bgmOoPIfhnNyhZL8GlFp25pB9BZkh0f3D5-eRw5x8Wu7qvA&s)


Tienes que verlo en acción para que puedas percibir su utilidad, ya que permite el testeo de variables de manera rápida.
(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSeIlPMr7uQJUAvOi726-4sIp4Nrhde5FCcwk59QXkLvpp-OFaKiS5YbcAIOw&s)


Yo lo uso todo el tiempo y no puedo programar sin él  ya que me ahorra mucho tiempo de trabajo.
(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTD16uXdcKOFcKDN07Tuwym1844-zXJer7g4YJSPDj6TOBnB1c8_ozB0rSEYw&s)


Voy a usarlo.
(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTaER5_uLTg65Qp2a5Tqi8MN1gzDKxpof-Fb9oTLlB5S1zypBQIjQZSvLw3gg&s)


Adiós, Nos vemos luego.
(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRfks98M1wUzKIk-GobJZRDSz8GxskiEGYRlWM2A6AxFDQVxwp8jC9ffH8X48o&s)


8)
Título: Re: Dibuja variables, operaciones y expresiones lógicas más fácil
Publicado por: dixon en Mayo 13, 2022, 09:34:33 PM
Hola un gusto en saludarlos.
(https://i.ibb.co/fkL0mpZ/saludos.png)


Aquí les traigo una nueva actualización del código que nos permite mostrar variables en pantalla de manera fácil.

//draw_text_super
txt=""

+'"" :'+string("")+chr(13)

draw_text(0,0,txt);



Modo de uso:
1. Colocamos el código en un evento draw o dibujo.
2.Reemplazamos las comillas dobles ("") por la variable o función que necesitemos mostrar.
3. Si necesitamos mostrar muchas variables debemos copiar el código:
+'"" :'+string("")+chr(13)

Ejemplo:
Si colocamos el siguiente código:

//draw_text_super
txt=""

+'direction :'+string(direction)+chr(13)
+'chr(65) :'+string(chr(65))+chr(13)
+'"" :'+string("")+chr(13)


draw_text(0,0,txt);


Obtendremos lo siguiente:
(https://i.ibb.co/b1Srvm5/draw-text-super.png)