Loader

Shoutbox

Dibuja variables, operaciones y expresiones lógicas más fácil

Publicado por dixon2010, Enero 03, 2010, 10:21:34 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Enero 03, 2010, 10:21:34 AM Ultima modificación: Septiembre 23, 2011, 03:39:01 PM por dixon2010
* 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:     :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


Dios nos ayuda y nos da sabiduría para vivir. Cáda código es una obra maestra que hay que respetar aunque exista un código mas eficiente y sencillo.

Enero 04, 2010, 02:05:21 AM #1 Ultima modificación: Enero 04, 2010, 05:45:38 PM por Alfonsos1
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

Enero 04, 2010, 04:15:33 PM #2 Ultima modificación: Enero 04, 2010, 07:30:35 PM por dixon2010
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.
Dios nos ayuda y nos da sabiduría para vivir. Cáda código es una obra maestra que hay que respetar aunque exista un código mas eficiente y sencillo.

gracias muy buen aporte .  :D una de las muchas cosas por las que considero que el debug de gamemaker es realmente malo.

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.
Es Mejor No Saber Porque Funciona, Que Saber El Porque No Funciona...
Tienes alguna duda con "Game Design" o de videojuegos en general, contactamente mas facil en twitter @pavulzavala

Junio 24, 2021, 06:12:01 PM #5 Ultima modificación: Julio 11, 2021, 10:46:10 AM por dixon
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.



Tengo achaques de viejo así que por favor déjenme explicar el origen y la utilidad del script antes de presentar las mejoras:



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.



Creo que no te entendí nada.


Ya te explico mejor:



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.



¿Eso es todo?.


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.



mmm.....


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.



Tienes que verlo en acción para que puedas percibir su utilidad, ya que permite el testeo de variables de manera rápida.



Yo lo uso todo el tiempo y no puedo programar sin él  ya que me ahorra mucho tiempo de trabajo.



Voy a usarlo.



Adiós, Nos vemos luego.



8)
Si Dios quiere; Limpiaré la oficina, puliré el piso y les serviré café a todos, luego, me enseñarán a programar e iré a comprarles más café.

Mayo 13, 2022, 09:34:33 PM #6 Ultima modificación: Mayo 13, 2022, 09:37:48 PM por dixon
Hola un gusto en saludarlos.



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:



Si Dios quiere; Limpiaré la oficina, puliré el piso y les serviré café a todos, luego, me enseñarán a programar e iré a comprarles más café.

Powered by EzPortal