Noticias

¡Ayuda a la Comunidad GM, haz una donación!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Problemas para escribir textos con DRAW  (Leído 247 veces)

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

Desconectado jmleivas

  • Visitante
  • *
  • Puntos: 10
  • Mensajes: 4
    • Ver Perfil
en: Abril 07, 2019, 06:26:56 am
Hola a tod@s. Les escribo esto un poco bastante frustado con este programa. Estoy desarrollando un pequeño simple y minúsculo juego, y otra vez, teniendo ya claro como será el algoritmo en general, me trabo y pierdo mucho tiempo en averiguar como hacer cosas que deberían ser en extremo sencillas, pero, aparentemente no lo son.

Seré más claro. Estoy haciendo un juego basado en la Paradoja de Monty Hall, para usar como disparador didáctico en una de mis clases. La idea es que mis alumnos jueguen un rato con el juego, hasta darse cuenta de que la probabilidad aumenta si cambian de puerta en la segunda oportunidad de elección.

Tengo el siguiente código dentro de un evento STEP:
draw_self();
draw_set_font(font0);
if (global.puerta01=1)
{

draw_text(25,25,"Elegiste la puerta 1");
}
if (global.puerta02=1)
{

draw_text(25,25,"Elegiste la puerta 2");
}
if (global.puerta03=1)
{

draw_text(25,25,"Elegiste la puerta 3");
}

Sí, ya se que esto debería de funcionar si lo pongo en un evento DRAW. Pero quiero que el texto aparezca solo cuando el jugador elija la puerta. Lo que me frustra es el hecho de que un programa como GameMaker debería de tener opciones más simples para algo tan sencillo.

Es por este inconveniente que, todos mis juegos anteriores, lo solucionaba creando un texto con Xara 3D, y luego, lo hacía aparecer como un sprite. lo deslizaba por la pantalla y una vez afuera del ROOM, lo destruía.

En fin. Si alguien conoce una manera simple de poner un texto en pantalla cuando el usuario elija una de las puertas, desde ya, le estaré muy agradecido.
« última modificación: Abril 10, 2019, 02:06:18 am por jmleivas »

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado getnoff

Respuesta #1 en: Abril 07, 2019, 07:34:04 am
Todo lo que se trate de dibujar en pantalla, textos y sprites aparte del que tenga asignado el objeto, debería de estar en el evento Draw ya que para eso es.
El evento Draw funciona igual que el step, puedes ponerle condiciones como quieras, tu código debería funcionar bien en el draw pero quítale el draw_self, porque si sólo es texto lo que se dibuja no necesita esa función.

O lo otro sería que estés usando un evento draw de un objeto local, no debes hacer eso, mejor usa algún objeto general que gestione todo el juego desde el principio, se le suele llamar "objeto_controlador" y trabaja en el evento draw de dicho objeto.

 
Los siguientes usuarios dieron las gracias a este tema: jmleivas


Desconectado elviskelley

Respuesta #2 en: Abril 07, 2019, 02:13:28 pm
yo para accionesde dibujo muy prolongadas uso un object al cual llamo o_draw y en el coloco todas las acciones de dibujo en su event draw. lo unico que hago desde el object que llama a dichas acciones es crear esa instancia o destruirla cuando ya no la necesito.
Tambien puede tener en cuenta que todo ese codigo puede ir en el event draw y funcionaria perfectamente. Draw event tambien puede comparar condiciones y basadas en ellas dibujar, aunque si quieres que el object que lleva dicho event draw se vea su sprite debes agregar el codido draw_sprite_ext(...)

Atentamente.-
Elvis Kelley
Mi Manual.
 
Los siguientes usuarios dieron las gracias a este tema: jmleivas


Desconectado jmleivas

  • Visitante
  • *
  • Puntos: 10
  • Mensajes: 4
    • Ver Perfil
Respuesta #3 en: Abril 07, 2019, 07:31:44 pm
Muchas gracias por vuestros aportes. La verdad, anoche escribí el post estando bastante cansado, frustrado y enojado por pasar horas tratando de realizar un juego que es extremadamente sencillo, y que, como habrán visto, siento que Game Maker me saca un tiempo enorme tratando de resolver cosas que deberían ser mucho más sencillas e intuitivas. Pienso que si todo el tiempo que perdí tratando de resolver este problema de colocar textos ante un evento determinado, lo hubiese dedicado enteramente a la realización del juego en sí, posiblemente ya lo tendría terminado (es que se trata de tres puertas de las cuales, detrás de una de ellas, hay un auto de premio y en las otras dos, una cabra y una oveja, el usuario elije una, luego se muestra el contenido de una de las dos puertas que no eligió y se le pregunta si quiere cambiar, y cuando el usuario responde, se muestra el contenido de todas las puertas abiertas, dando el resultado final si el jugador acertó o perdió.. solo eso). Como verán, el juego es extremadamente sencillo, y no debería de llevar más de dos horas realizarlo. Sin embargo, no fue así. Y lo peor de todo, es que no es la primera vez que me pasa. Por eso, hoy comencé a hacer el mismo juego, pero en javascript. Claro, la calidad gráfica y de animación no será la misma, pero, increíblemente, la publicación de mensajes interactivos es muchísimo más fácil que en Game Maker.

En fin, les agradezco muchísimo el tiempo que se tomaron en leer mis post y en aconsejarme con el uso del Draw. La verdad, no sabía que Draw funcionaba igual que el Step y que incluso le puedo poner los if dentro. Este detalle lo cambia todo. Voy a probar y de funcionar, eso me resultará en una gran ayuda.

Elviskelley, Getnoff y Klamud, les agradezco nuevamente sus palabras y consejos. Les mando un gran saludo desde Uruguay.

Muchas gracias.

 


Desconectado Johann

  • Las cosas como son!
  • Moderadores globales
  • Okupa
  • *
  • Puntos: 745
  • Mensajes: 852
  • Agradecido: 114 veces
  • Sexo: Masculino
  • First Class Soldier... 10 años en CGM, 5 como mod
    • Ver Perfil
Respuesta #4 en: Abril 08, 2019, 12:16:44 am
Hola, podrías por favor cambiar el titulo del mensaje a algo mas cercano al problema real que tenías y de paso ponerle el icono de la version de GM que usas?

Cita de: Fenris78
Si un tema os resulta de interes y veis que hay poca información, la mejor solucion no es quejarse o pedir sin pensar, sino sugerir algo bien planteado o aportarlo vosotros mismos.
Cita de: Calio
Somos desarrolladores independientes y, por lo tanto, no tenemos por qué guiarnos por las tendencias del mercado.
 
Los siguientes usuarios dieron las gracias a este tema: jmleivas


Desconectado jmleivas

  • Visitante
  • *
  • Puntos: 10
  • Mensajes: 4
    • Ver Perfil
Respuesta #5 en: Abril 10, 2019, 02:07:08 am
Hola, podrías por favor cambiar el titulo del mensaje a algo mas cercano al problema real que tenías y de paso ponerle el icono de la version de GM que usas?

Listo. Le cambié el título al post.