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

947
Como dice Iros, haz un programa de plataformas básico y desplaza todas las instancias hacia un lado. Este es un ejemplo de desplazamiento: http://www.comunidadgm.org/preguntas-y-respuestas/generador-de-objetos-aleatorios-mediante-scripts-problema/
948
Una alternativa es usar reportar al moderador, usando el enlace que aparece abajo de cada mensaje, así es más seguro que lo borren.
949
¿Qué versión de GM utilizas? Si es 8.0 prueba con el archivo de abajo.
950
No se cómo funciona tu proyecto, pero hice un ejemplo suponiendo que la vista es fija y las instancias se desplazan.
Al inicio del juego, el objeto creador genera las estructuras necesarias para llenar un área determinada, después, en cada step se desplazan todas las instancias (incluyendo al creador).
Si las instancias llegan a la izquierda de la pantalla, se destruyen, y si el creador llega a una posición en el lado derecho, se genera otra estructura. Las posiciones donde se crean y se destruyen las instancias se deben modificar para que queden fuera de la vista, las puse así a modo de ejemplo.
Usando este método es posible variar la velocidad de desplazamiento, usa la tecla derecha para avanzar más rápido y la iquierda para frenar.
(Los sprites fueron sacados de http://unluckystudio.com/)
951
Cuando una instancia sigue una path, además de la posición, también se modifica la variable direction, entonces puedes hacer una comparación como esta:
[gml]
if( direction<90 or  direction>270 ) image_xscale = 1;
if( direction>90 and direction<270 ) image_xscale = -1;
[/gml]
952
Este es un resumen.
Cuando se dibuja en GM se tienen dos partes; el destino, que es en donde se va a dibujar (ya sea una surface o directamente en la pantalla), que puede tener algo dibujado previamente, y la fuente, que es lo que se va a dibujar (ya sea un bitmap o una primitiva).
Cada pixel está compuesto de 4 canales (RGBA), de 8 bits cada uno, y tienen valores de 0 a 255, pero al usar "mezclas" se manejan como números con punto flotante de 0 a 1.
Los 4 canales de cada pixel se multiplican por el factor indicado en el "modo de mezcla"; el primer argumento multiplica los pixeles de destino y el segundo multiplica los pixeles fuente, después los dos resultados se suman y se almacenan en el buffer de destino (surface o pantalla).
Los canales se manejan como números de 0 a 1 para que las multiplicaciones generen números en el mismo rango.

Veamos como ejemplo el modo normal, que se establece de esta forma:
[gml]
draw_set_blend_mode_ext( bm_src_alpha, bm_inv_src_alpha );
[/gml]
Al dibujar un sprite sus pixeles se multiplican por su valor de transparencia; si un pixel es completamente opaco se multiplica por 1 y su color se conserva, si un pixel es transparente se multiplica por un valor menor a 1 y su color se atenúa. El destino se multiplica por el inverso de la transparencia del sprite; si se dibuja un pixel completamente opaco el pixel de destino se multiplica por 0, con lo que se descarta el color de destino y sólo se conserva el color del sprite, y si se dibuja un pixel transparente el color de destino se multiplica por un valor mayor a 0, entonces los 2 pixeles se combinan.
953
Hola. En primer lugar, no es necesario escribir script_execute, mejor solo escribe el nombre del script:
[gml]
///Create o Alarm 0
generate();
[/gml]

Esta es mi sugerencia para el script generate, los demás scripts se encuentran dentro de este:
[gml]
///Script generate
alarm[0] = 120; //reactivar alarma
randomize(); //secuencia aleatoria

x = room_width + 100; //posicion horizontal fija

switch irandom(2) //elegir una posibilidad
{
    case 0: //primera opcion
        repeat( 3 ) //generar 3 objetos
        {
            while not place_free( x,y ) //si no hay lugar vacio
            y = irandom( room_height ); //posicion vertical aleatoria
            instance_create( x,y, ob1 ); //crear instancia
        }
        break;
    case 1: //segunda opcion
        repeat( 2 ) //generar 2 objetos
        {
            while not place_free( x,y ) //si no hay lugar vacio
            y = irandom( room_height ); //posicion vertical aleatoria
            instance_create( x,y, ob2 ); //crear instancia
        }
        break;
    case 2: //tercera opcion
        y = irandom( room_height ); //posicion vertical aleatoria
        instance_create( x,y, ob3 ); //crear instancia
}
[/gml]
Si es un endless runner, lo que debería cambiar es la altura de los obstáculos y la posición horizontal inicial no debería cambiar. El while se va a ejecutar hasta encontrar un punto vacio, después se crea el obstáculo. Aun es posible que los obstaculos queden encimados, porque solo se revisa la colision de un punto, para mejorar el resultado, es mejor que el objeto creador tenga máscara de colision y se use la función place_meeting
954
Juegos en desarrollo / Re:AssasinFox
Febrero 09, 2016, 12:36:23 AM
Aunque no está terminado tiene posibilidades de competir, lo hubieras enviado.
Las animaciones están bien hechas y el sistema de plataformas es bastante sólido; no tiene los bugs que se ven frecuentemente, sólo faltaría hacer más grande el área de colisión de la espada para que sea más rápido matar a los enemigos.
955
Juegos completos / Re:Jeffer Soccer
Febrero 09, 2016, 12:29:10 AM
Está divertido, pero la inteligencia artificial a veces se pone muy difícil. El principal problema es que el balón se mueve muy rápido y a veces es difícil distinguir el jugador que será cotrolable, pero en general es un buen juego.
957
Mejor cambia el código del evento Draw a End Step, así evitas usar draw_self()
958
Coincido con getnoff; los personajes deben tener un estado en el que sólo se muestren las animaciones del agarre. Es posbile hacerlo con las aciones DnD, pero es más fácil con GML.

Estos comportamientos complicados se programan por lo general en forma de "máquina de estados"; recuerdo haber leído un buen artículo en el que se implementaban máquinas de estados en un juego de peleas, pero no lo encuentro, sólo pude encontrar este video, que te puede dar una idea de los estados que vas a necesitar en el juego: https://www.youtube.com/watch?v=HSXqGfks8bc
959
En la ventana de propiedades del sonido, marca la opción "use multimedia player"
http://www.dazlog.com/manual_GM/Mas_sobre_sonido_y_musica.htm
960
Noticias / Re:Concurso Comunidad Game Maker 2016
Febrero 04, 2016, 03:36:14 AM
Si, las carpetas son necesarias, pero en lugar de copiarlas manualmente, ve al menú File y elige Export para generar un solo archivo con el proyecto completo.