Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

* Sponsor

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!.

Mostrar Mensajes

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


Mensajes - Jeffrey Faper

Páginas: 1
1
Tal vez no estás borrando las instancias u otros datos que generas durante la ejecución del juego. Usa el debugger para ver con detalle las instancias.
Para optimizar un poco puedes cambiar algunas instancias por partículas.

Sí me he preguntado cómo hacer object pooling, pero no lo he implementado. Nunca he creado algo en GM que genere muchas instancias, pero sí hice una prueba de plataformero con usa sola instancia.
Una forma de implementar el pooling puede ser esta: Las instancias que no tienen un comportamiento complejo pueden cambiarse por una instancia que guarda los valores en ds_lists o en otras estructuras de datos. Usa loops para ir modificando todas las variables y para dibujar los sprites correspondientes a cada "instancia" personalizada.

2
Preguntas y respuestas / Re: Diferencias entre Windows y Windows(YYC)?
« en: Abril 09, 2022, 01:33:47 am »
YYC es más estricto con la sintaxis del código, tarda más en compilar, y cuando tira errores no son tan comprensibles como con VM (el modo normal), a cambio el ejecutable es compilado a lenguaje nativo (para windows compila a C++), lo que lo hace más veloz, que tanto más veloz dependerá de que tan intensos sean los cálculos que tu juego debe hacer, si el aspecto más lento de tu juego son los gráficos entonces el YYC te ayudara poco o nada en ese aspecto.

3
Preguntas y respuestas / Re: recomiendan el uso de game_restart?
« en: Marzo 27, 2022, 11:33:12 pm »
https://manual-es.yoyogames.com/GameMaker_Language/GML_Reference/General_Game_Control/game_restart.htm

La función game_restart no reinicia el juego de 0, varios elementos se mantienen entre reinicios. Si vas a utilizarla es importante saber que se mantiene para limpiarlo manualmente.

4
Preguntas y respuestas / Re: como conseguir mejores animaciones?
« en: Marzo 05, 2022, 11:29:41 pm »
Has animaciones por código, imagina que cualquier variable se puede animar, como hace Godot con su animador. Solo tienes que crear temporizadores, preferiblemente por código, luego asignar sus valores a algún parámetro del draw, por ejemplo, posiciones x,y escala, rotación, transparencia y ya. Los temporizadores pueden llevar funciones sinusoidales para que las animaciones sean suaves.

5
Preguntas y respuestas / Re: como conseguir mejores animaciones?
« en: Marzo 03, 2022, 06:56:43 am »
Utiliza draw_sprite_ext() y sus variantes, puedes lograr resultados interesantes manipulando todos los aspectos, nada más tienes que hacer un bucle para controlar la animacion algo asi

Evento create
i=0;

Evento draw
i+=0.25;//frecuencia de la animación
var numF = 8;//la cantidad de fotogramas de el sprite
if(i>=numF){i=0;}

draw_sprite_ext(TuSprite,i,x,y,1,1,0,c_white,1);

6
Hola saludos cordiales.

;D


Representan el orden de ejecución, es decir todos son ejecutados en cada paso, pero primero  BeginStep  luego step y finalmente EndStep, se emplean solo para ordenar el código segun mi parecer,  aunque pensandolo bien es posible que EndStep se ejecute después del evento Draw y el step antes del draw.

7
Preguntas y respuestas / Re: point_direction?(solucionado )
« en: Diciembre 12, 2021, 11:26:19 am »
Al final lo he echo con :  point_distance , cuando el robot se acerca al punto y esta a  menos de 10 pixel la velocidad es 0



switch (posicion_robot) {
   
       case 1:
                 
               direction = point_direction(x, y, 1400, 600 )//direcion a tomar
               
               speed=velocida
               
               if point_distance(x,y,1400,600) <10 { speed=0}//mide la distancia y si esta menos de 10 pixel velocidad es 0
             
               if !alarm[1] { alarm[1]=60*3   }
               
             break
             
       
        case 2:  
               
                direction = point_direction(x, y, 1720, 205 )
               
                speed=velocida
               
                 if point_distance(x,y,1820,205) <10 { speed=0 }
                 
                 if !alarm[1] { alarm[1]=60*3    }
                 
             break;
             
        case 3:
       
                direction = point_direction(x, y, 1400, 1140 )
               
                speed=velocida
               
                if point_distance(x,y,1400,1140) <10 { speed=0 }
               
                if !alarm[1] { alarm[1]=60*3    }
       
    default:
   
        break;
}

Páginas: 1