Autor Tema: Un error que afecta a "graph" que no entiendo por qué pasa  (Leído 740 veces)

Yawin

  • Hero Member
  • *****
  • Mensajes: 1091
  • Karma: 45
  • La primera persona que ha "demosceneado" en Bennu.
Un error que afecta a "graph" que no entiendo por qué pasa
« en: Febrero 22, 2015, 03:50:41 pm »
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

  • Administrator
  • *****
  • Mensajes: 2247
  • Karma: 82
    • panreyes.com
Re:Un error que afecta a "graph" que no entiendo por qué pasa
« Respuesta #1 en: Febrero 22, 2015, 05:37:44 pm »
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

  • Hero Member
  • *****
  • Mensajes: 1091
  • Karma: 45
  • La primera persona que ha "demosceneado" en Bennu.
Re:Un error que afecta a "graph" que no entiendo por qué pasa
« Respuesta #2 en: Febrero 22, 2015, 05:56:56 pm »
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í:
Código: [Seleccionar]
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.
« última modificación: Febrero 22, 2015, 06:32:16 pm por Yawin »
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

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