Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - Clamud

1606
Preguntas y respuestas / Re:rompecabezas de tuberias
Noviembre 18, 2014, 08:02:47 PM
Se me ocurre que el agua sea un objeto, también las tuberías y los puntos de salida y entrada de agua. Que el objeto salida cree una instancia del objeto agua y le de una dirección inicial, entonces el objeto agua se movería dependiendo del tipo de objeto tubería que esté abajo (los tipos de trayectorias tendrían que estar definidos en el objeto agua). Por el momento sería útil visualizar el agua como un punto, sin tener que dibujar el recorrido ni el volumen, para simplificar las cosas. Para saber en qué tipo de tubería está se usaría la función collision_point. Cuando el objeto agua esté tocando una salida de agua podría cambiar una variable de un objeto controlador, por ejemplo obControl.meta = true, éste objeto se encargaría de mostrar un mensaje de que has ganado, pasar de nivel, etc. Si el objeto agua llega a donde no hay objetos tubería o llega a una tubería cuya trayectoria no puede seguirse, asigna un valor a otra variable del objeto controlador, por ejemplo obControl.fuga = true, en ese caso el objeto controlador restaría una vida, reiniciaría el nivel o reiniciaría el juego.

Ahora toma lápiz y papel y empieza a meditar cómo implementar esos mecanismos. Seguramente llegaras a plantearte preguntas mas concretas.
1607
Aquí va un pequeño tutorial:

Usando device_mouse
Vamos a suponer que cada tecla es un objeto. Lo primero es saber cuales son las coordenadas de las esquinas del objeto (suponiendo que es rectangular), puedes asignarle un sprite con origen en (0,0), entonces las coordenadas son:
[gml]
x1 = x;
y1 = y;
x2 = x+sprite_width;
y2 = y+sprite_height;
[/gml]
Define las coordenadas en el evento Create. Luego, en cada step, checas si se ha pulsado con alguno de los cinco ratones (numerados de 0 a 4), entonces reproduces un sonido:
[gml]
for( i=0; i<=4; i++ )
{
    if( device_mouse_check_button_pressed( i, mb_left ) )
    if( device_mouse_x(i) > x1 and devide_mouse_x(i) < x2 )
    if( device_mouse_y(i) > y1 and device_mouse_y(i) < y2 )
        audio_play_sound( nota, 0, false );
}
[/gml]
Tal vez sea necesario revisar que no está sonando la misma nota antes de reproducirla.

¿Que tal te funcionó? Luego explico el otro método

P.D. No repitas tantas veces el mismo tema, eso hace que el foro quede desorganizado, ten un poco de paciencia.
1608
Desarrollo de Scripts / Re:light2d()
Noviembre 18, 2014, 03:58:47 AM
El ejemplo no me funcionó en GM 8.1, ni en GMS 1.3, ni en LateralGM 1.8, sólo se ve una pantalla negra.
1609
Propuestas y soporte / Re:BBCode
Noviembre 17, 2014, 03:34:13 AM
¿Existe algún código para escribir formulas matemáticas?
1610
Preguntas y respuestas / Re:Como hago un Spawner ?
Noviembre 17, 2014, 03:04:12 AM
[gml]alarm[0] = irandom_range( 50, 100 );[/gml]
1611
El manual lo dice, en la ayuda de la función draw_text.

La principal utilidad del símbolo # es que puedes dibujar un texto de varias líneas usando una sola función draw_text. Pero en algunos casos es necesario dibujar ése símbolo, y se hace poniendo \#.

En la misma sección del manual, se explica también, que para dibujar comillas ("") con draw_text la cadena (string) se tiene que abrir y cerrar con apóstrofos (''). Y ésto no lo dice pero, para dibujar apóstrofos la cadena se tiene que abrir y cerrar con comillas.

Aprovecho para mencionar otra característica que, he notado, se usa muy poco. Si escribes tres diagonales (///) al inicio de una acción "Execute Code" se cambia el mensaje "Execute a piece of code" por el mensaje que tu quieras. Eso de gran utilidad para organizar el código.
1612
Primero activa texture_set_interpolation y si el port de la view es mas grande que la view el efecto borroso se hace automáticamente.

Si quieres hacerlo más borroso, te diré un método usando surfaces (porque no se me ocurre cómo hacerlo con draw_sprite_ext).

Primero crea una surface con el mismo tamaño de la view (o de la room) y dibuja todo el escenario en esa surface (todos los objetos, si usas tiles no se podrán dibujar en la surface).

Después crea otra surface de menor tamaño y dibuja la primera, a escala, sobre la segunda. Haz que todos los objetos sean invisibles menos uno que hará la combinación de capas en el evento draw.

Crea una tercera surface y cubrela con color blanco (usando draw_clear) y en medio dibuja una elipse con degradado (draw_ellipse_color), negro en el centro y blanco en los bordes. Él proceso para ésta surface tiene que hacerse sólo una vez. Puedes crear un background a partir de esta surface para evitar que se borre de manera accidental.

En el evento draw dibuja la primera surface, luego la segunda con transparencia y ampliada, establece draw_set_blend_mode(bm_add) y dibuja la tercera. Si la imagen queda demasiado saturada baja la opacidad de las capas que
lo necesiten.

Por último restablece el método de dibujo draw_set_blend_mode(bm_normal).

Como medida de seguridad puedes revisar si las surfaces existen antes de dibujarlas.

Es un proceso largo, espero que no afecte la velocidad en algunas máquinas. Por lo que me he enterado GMS es rápido usando surfaces, la versión más lenta para surfaces es GM8.

Buen día.
1613
No es recomendable usar imágenes tan grandes porque puede afectar de diversas formas el rendimiento del juego (y más si va a correr en una tablet); puede pasar que tarde demasiado en abrir la aplicación o que funcione muy lenta.

Una forma de solucionar esos problemas sería evitar que los recursos se carguen de forma automática, después cargarlos cuando se necesiten y borrar de la memoria los que ya no se usen, pero nunca lo he intentado y no podría aconsejarte sobre eso.

Otros métodos serían parecidos a los que se usan en el tutorial "scrolling shooter" (que viene con el GMS). Uno es hacer una room larga a la que se le agregan objetos para formar el escenario (también se pueden usar tiles) y desplazarse a lo largo de la room. Otro es hacer una room pequeña con objetos que se van creando fuera de ésta y se desplazan hacia el extremo opuesto de la room, cuando están fuera de la vista se destruyen (o se vuelven a posicionar del lado contrario), así se obtiene un desplazamiento infinito.

En tu juego puedes hacer que se generen diferentes objetos dependiendo del nivel, por ejemplo, puedes hacer que el efecto sea de un desplazamiento por el cielo; en el primer nivel puedes dibujar un degradado, con las funciones de GM, en tonos azules claros y los objetos generados tendrían forma de nubes, conforme se avanza de nivel los tonos del degradado se harían más oscuros y poco a poco se generaría más objetos con forma de estrellas, después se generarían objetos con formas de planetas y así sucesivamente. Se usaría una room que cambia de forma gradualmente como mencionaste.
1614
Difiero con el razonamiento de la imagen 4:
La palabra que no encaja es Avestruz, porque la palabra Pájaro engloba a las aves de tamaño pequeño como los son las otras tres opciones. :D

El juego se ve interesante, intentaré probarlo aunque no tenga android.
1615
La imagen no se ve.
Danos mas detalles sobre las características debe tener la iluminación.
1616
En realidad los otros puntos se pueden detectar como clicks de varios ratones.

Hay dos métodos para presionar varios botones a la vez en un pantalla táctil, uno es usando "ratones virtuales" o "devices" http://docs.yoyogames.com/source/dadiospice/002_reference/mouse,%20keyboard%20and%20other%20controls/device%20input/index.html y el otro método es usar "virtual keys" http://docs.yoyogames.com/source/dadiospice/002_reference/mouse,%20keyboard%20and%20other%20controls/virtual%20keys/index.html.
Lo primero que debes hacer es leer esos dos temas en el manual, y si tienes dudas aquí estamos para ayudarte.
1617
Hola carlymx, aquí hay algunas ideas para implementar tu juego:

En vez de usar pares de imágenes (una a color y una sombra), me parece más sencillo tener solamente las imágenes a color, y hacer el efecto de sombra con las funciones draw_blend (o incluso con la variable image_blend), pero es necesario que las imágenes tengan transparecia.

Todas la imágenes pueden guardarse en un solo sprite, sirve que pueden visualizarse y ordenarse con el editor de sprites de GM. Tal vez puedan ordenarse por orden de dificultad, así la dificultad del juego cambia definiendo diferentes rangos de imágenes para mostrar.

Mostrar las opciones en un orden aleatorio resulta muy fácil con "data structures". Por ejemplo puedes llenar una ds_list con una secuencia de números (puede ser el rango de imágenes que quieras que se muestren en un nivel) y después usar ds_list_shuffle para que los números queden ordenados aleatoriamente, entonces las subimágenes del sprite (único) se dibujarían en el orden de la lista. Después con la fucnión irandom_range eliges un número en el mismo rango para que sea la imagen sombra.

Eso es para empezar a hacer algunas pruebas. Se me van a ocurrir otras cosas, ya las iré escribiendo.

Hasta luego.
1618
Preguntas y respuestas / Bugs en funciones file_text
Noviembre 15, 2014, 06:56:07 AM
Saludos.

He estado trabajando en un método para guardar y cargar información a través de archivos de texto en GM81. Después de algunas pruebas descubrí unos bugs y algunos resultados poco predecibles en las funciones file_text_*, que no se explican en el manual:


  • La función file_text_write_real no escribe correctamente los números negativos (si no son enteros).
  • Dependiendo de la configuración regional de Windows, la función file_text_write_real escribe comas en vez de puntos como separador decimal y la función file_text_read_real no puede leerlos.
  • La función *write_real escribe un espacio y el número, pero la función *read_real no toma en cuenta los espacios, así que, en una sola línea, lee números con punto decimal separados por puntos.
  • La función *write_real siempre hace un redondeo a 6 cifras decimales.

Esas son las cosas que más me han retrasado, creo que hay otros detalles pero son menos importantes.

¿Alguien sabe dónde puedo encontrar información más detallada sobre esto, o conoce otras peculiaridades de las funciones file_text*?

Gracias por la ayuda.
1619
Juegos en desarrollo / Re:Jump Orbit
Noviembre 15, 2014, 05:25:53 AM
Buen juego, está entretenido, pero le hacen mucha falta los sonidos. También me gustaría que tuviera mas variedad de colores y que, al perder, el intro pasara más rápido.
1620
Hice un pequeño ejemplo en el que se compara el ángulo relativo del personaje respecto a la cámara y se asigna una imagen para cada intervalo. Gira la vista con las flechas izquierda y derecha. Espero que te ayude.