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

1051
Juegos completos / Re:Dan prison
Noviembre 28, 2015, 01:59:45 AM
Yo lo probé en mi portátil, el problema es que en ese teclado no se detectan las teclas arriba, izquierda, X y Z al mismo tiempo, deberías poner unos controles alternativos o tener una forma de configurarlos.

El juego es divertido, tiene buena dificultad y animaciones llamativas. Me recuerda mucho a Ghosts'n Goblins, supongo que está basado en ese juego, y el rock en midi me recuerda a Doom.

Se debería modificar la máscara de colisión de Dan, creo que es demasiado grande y a veces los zombies te matan sin que lo esperes. Al oprimir el botón de correr se debería notar más la diferencia de velocidad. A las monedas les veo poca utilidad, realmente no importa si ganas una vida, una muerte normal es casi lo mismo que un continue. Debería existir una forma de perder el cuchillo o de conseguir otras armas, eso le daría más variedad al juego. Y también debería existir un método de guardado para no tener que pasar el juego en una sola sesión (por el momento se pueden usar las teclas F5 y F6 para guardar y cargar).

Con algunas mejoras el juego tiene futuro, espero que lo mejores.
1052
Lo que yo entiendo es que el juego será una especie de laberinto; en cada habitación habrá varias puertas, una de ellas lleva a la habitación siguiente, y las otras llevan a habitaciones anteriores de forma aleatoria.

¿Es algo parecido al archivo adjunto?
1053
La verdad es que, si no contemplaste las plataformas diagonales desde el diseño inicial, vas a tener que re-escribir mucho código.

Creo que la sugerencia de penumbra deriva del plano inclinado como máquina simple.

Cuando un objeto está sobre un plano inclinado (sin fricción) actúa una fuerza hacia abajo, causada por la gravedad, y una fuerza perpendicular al plano (fuerza normal). La suma de esas fuerzas resulta en una fuerza paralela al plano que provoca el deslizamiento. http://www.fisicapractica.com/plano-inclinado.php

Yo tengo un método similar, pero en vez de modificar la gravedad, el objeto es desplazado en dirección perpendicular a la plataforma cuando se detecta una colisión. La colisión se podría detectar activando la colisión precisa de los sprites, sin embargo, se usa un exceso de procesamiento. Para no utilizar sprites con colisión precisa, he definido las diagonales como rectas en el plano xy. Cuando se detecta una colisión con una plataforma, se determina la colisión con la diagonal, si hay colisión el objeto se desplaza unos pixeles hacia afuera de la plataforma.
Tengo un ejemplo, pero tiene mucho código, y no es muy fácil de entender.
1054
General / Re:posible bug?
Noviembre 25, 2015, 07:32:43 PM
Comprueba que sea el archivo de AppData\Local\GameMaker-Studio y no el de AppData\Roaming\GameMaker-Studio
1055
General / Re:posible bug?
Noviembre 25, 2015, 12:53:10 AM
Nunca me ha sucedido lo que mencionan, es un comportamiento muy raro. Uso Windows7, GMS 1.4 y mi teclado tiene la distribución de teclas del idioma inglés.

También podrías crear un snippet; ve la carpeta Appdata de GMS (C:\Users\MyUserName\AppData\Local\GameMaker-Studio), abre el archivo snippets.txt y agrega una línea como esta
mensaje:show_message( |TEXTO| );
Para abrir la lista de snippets presiona F2 dentro de GameMaker.
1056
Desde el momento en que asignas la variable sprite_index hay una imagen que mostrar en el evento Draw normal. Por eso el sprite aparece dos veces: primero se dibuja en el evento Draw y después le indicas que se dibuje en Draw GUI. Para evitar eso, simplemente le tienes que decir al evento Draw que haga otra cosa.
1057
Los mensajes emergentes de otras aplicaciones no afectan la ventana de los juegos hechos con GMS, por lo menos nunca me han afectado. En lugar de correr el juego/herramienta en pantalla completa podrías maximizar la ventana o hacer que la ventana sea escalable.
1058
Desactiva el evento Draw colocando ahí un comentario o la acción "Exit event".
1059
Si, sería mejor dibujar dos sprites en lugar de una superficie y un sprite.
1060
Importa el archivo .gm81 para que veas cómo funciona.
Lo más complicado en ese código es el uso de los "blend modes", se podrían hacer variaciones del código con el mismo resultado.
1061
Se me ocurre este método
[gml]
surface_set_target( sf );
   
    //sprite a escala
    draw_clear_alpha( 0,0 );
    draw_sprite_ext( sp0,0, 256,256, 1.1,1.1, 0,c_white,1 );
   
    //dibujar solo en la parte opaca
    draw_set_blend_mode_ext( bm_dest_alpha, bm_zero );
    draw_rectangle_color( 0,0, 512,512, c_lime,c_green,c_teal,c_aqua, false );
    draw_set_blend_mode( bm_normal );
   
    //borrar la parte interna
    draw_set_blend_mode_ext( bm_zero, bm_inv_src_alpha );
    draw_sprite( sp0,0, 256,256 );
    draw_set_blend_mode( bm_normal );
   
surface_reset_target();
[/gml]
Primero se dibuja el sprite a escala. Después se dibuja una textura o color para el borde, pero sólo sobre la parte opaca del sprite dibujado previamente. Por último se usa el sprite con tamaño normal para hacer transparente la parte interna de la superficie.
Revisa el archivo de ejemplo.
1062
Otra opción es obtener el id de la instancia que se encuentra a n pixeles a la derecha:
[gml]
with instance_position( x+n, y, A )
image_alpha = other.image_alpha;
[/gml]
1063
El error está en el código de colisión. La velocidad se debe cambiar hasta el final porque eso también modifica a la variable direction. La salida del sólido se debe realizar en dirección opuesta al movimiento, entonces el código quedaría así:
[gml]
move_outside_solid( direction+180, -1 );
vspeed = 0;
[/gml]
Pero este código sólo contempla las colisiones en dirección horizontal, falta la parte que controla las colisiones en dirección vertical. Adjunto un ejemplo de antiguo de plataformas sencillo, que hice hace tiempo.

Esta es la forma más fácil de programar un juego de plataformas, pero no es la más óptima, los porqués se explican en estos artículos:
http://www.comunidadgm.org/articulos/colisiones-con-tiles-(programacion)/
https://www.yoyogames.com/tech_blog/40

Estoy preparando un tutorial de plataformas con tiles, espero publicarlo pronto.
1064
Si una habitación se marca como persistente, se mantiene en la memoria una vez que es visitada, pero no ejecuta acciones si otra habitación está activa.
1065
Preguntas y respuestas / Re:REBOTAR LA PELOTA CONTRA PARED
Noviembre 16, 2015, 05:32:56 PM
Para que el rebote sea natural, la pelota no debería dirigirse siempre al punto (PASEX,PASEY), y tampoco se debería signar a friction un valor negativo porque eso aumenta la rapidez.

Para calcular el rebote se necesita saber la dirección perpendicular a la superficie de contacto, eso depende del diseño de los niveles. Supongo que usas una habitación rodeada con bloques y el modo de juego es algo parecido a billar, adjunto un archivo de ejemplo.

Para que la pelota se detenga al llegar al punto de pase podrías comparar la distancia con un valor determinado, y si es menor capturar la pelota.