Un error que afecta a "graph" que no entiendo por qué pasa

Started by Yawin, February 22, 2015, 03:50:41 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Yawin

Hola a todos. Me temo que sigo con problemas. Os explicaría el error, pero me temo que es mejor si lo grabo y os lo pongo:
https://www.youtube.com/watch?v=e5ofIMnSOIA

Os adjunto el código del proyecto que os enseño en el juego por si alguno quiere mirarlo: http://pensarescompartir.com/bin.zip
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

panreyes

No he comprendido del todo el problema que tienes, pero tengo la sensación de que está todo relacionado con ese father.graph=graph;
¿Podría ser?

Yawin

El caso es que, a los 30 segundos o así de empezar todos los que usan la función char_calc reciben como gráfico el del primero de ellos.

P.d.: Acabo de resolverlo. La función ha quedado así:
function char_calc(int fpg_id,int graph_orig,int pos1,int pos2,int frames,int orientaciones)
    private
        int i,j,cant_x,cant_y;
        int x_inic, y_inic;
    end
    begin 
       cant_x=map_info(fpgs[fpg_id],graph_orig,G_WIDTH)/frames;
        cant_y=map_info(fpgs[fpg_id],graph_orig,G_HEIGHT)/orientaciones;

        map_unload(0,father.graph);
        father.graph=map_new(cant_x,cant_y,16); 
       
        y_inic=cant_y*pos1;
        x_inic=cant_x*pos2;

         for(i=0;i<cant_x;i++)
            for(j=0;j<cant_y;j++)
                map_put_pixel(0,father.graph,i,j,map_get_pixel(fpgs[fpg_id],graph_orig,x_inic+i,y_inic+j));
             end
        end

        center_set(0,father.graph,map_info(0,father.graph,G_WIDTH)/2,map_info(0,father.graph,G_HEIGHT));
    end


Pero me escama que me falle en este proyecto cuando en otros no lo hace.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end