Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Kakashi en Enero 06, 2016, 12:03:45 AM

Título: Realentización de juego usando ds_grid
Publicado por: Kakashi en Enero 06, 2016, 12:03:45 AM
Hola amigos, hace mucho que no me paso por acá. Sucede que empecé de nuevo con un juego donde se pueden crear instancias dependiendo de la que es seleccionada. Uso ds_grids para almacenar la posición de determinado elemento. Lo que sucede es que el juego se pone lentísimo apenas se crean 20 instancias. No entiendo el porqué o si se deba a mi ordenador. Me interesan las instancias dado que cada una tendrá ciertas propiedades dependiendo de cuál sea. Alguien pudiera echarme una mano?
Título: Re:Realentización de juego usando ds_grid
Publicado por: Yuki Nagato en Enero 06, 2016, 09:51:51 PM
el problema está acá en el draw:


var i, j;
{
for(i=0;i<ds_grid_width(global.level);i+=1)
    {
    for(j=0;j<ds_grid_height(global.level);j+=1)
    {
        switch ds_grid_get(global.level,i,j)
        {
        case 1:instance_create(i*32,j*32,obj_crystal);
        break;
        case 2:instance_create(i*32,j*32,obj_crystal);
        break;
        }
       
    }
    }
};


No estas creando 20 instancias, sino muchas de miles de millones (?)
Como el evento draw se ejecuta constantemente, entonces con el codigo se crean constantemente más objetos y más aun si, por cada step se ejecuta un ciclo dentro. Entonces creas demasiadas instancias de golpe por step, lo que hace que se relentice el juego  :D