Foros del Web » Programación para mayores de 30 ;) » C/C++ »

no funciona doble buffering en allegro con c++

Estas en el tema de no funciona doble buffering en allegro con c++ en el foro de C/C++ en Foros del Web. Pues de antemano muchas gracias por las respuestas que puedan solicitarme el problema es que no puedo realizar con exito el doble buffering pues al ...
  #1 (permalink)  
Antiguo 20/11/2013, 23:49
 
Fecha de Ingreso: noviembre-2013
Mensajes: 5
Antigüedad: 10 años, 5 meses
Puntos: 0
no funciona doble buffering en allegro con c++

Pues de antemano muchas gracias por las respuestas que puedan solicitarme el problema es que no puedo realizar con exito el doble buffering pues al compilar el codigo que tengo parpadea demasiado porfavor ayuda y de antemano muchisimas gracias :P anexo mi codigo para que lo chequen:

Código:
#include <allegro.h>
#include "inicia.h"

#define ancho_pantalla 340
#define alto_pantalla 380

//------------------------POO----------------------------
class Personaje
{
    public:
        BITMAP *Personaj;
        BITMAP *buffer_pers;
        int ancho, alto, posx, posy, Estado, dir, contador, restador;
        Personaje(BITMAP *pers, BITMAP *mini_buffer);
        void Dibujar(BITMAP *buffer, BITMAP *izquierda);
        void Dibujar_accion(BITMAP *buffer, BITMAP *accion);
        void caminar();
        void Correr();
        void Saltar();
        void morir();
        void Agacharse();
        void Disparar();
        void Matar();
};

Personaje::Personaje(BITMAP *pers, BITMAP *mini_buffer){
    Personaj = pers;
    buffer_pers = mini_buffer;
    dir = 1;
    ancho = 37;
    alto = 37;
    posx = 0;
    posy = 100;
    contador = 0;
    Estado = 0;
    restador = 2;
}

void Personaje::Dibujar(BITMAP *buffer, BITMAP *izquierda){
    if (dir == 1){
        blit(Personaj,buffer_pers,0,0,0,0,37,37);
        draw_sprite(buffer,buffer_pers,posx,posy);
    }
    else{
        blit(izquierda,buffer_pers,0,0,0,0,37,37);
        draw_sprite(buffer,buffer_pers,posx,posy);
    }
}

void Personaje::Dibujar_accion(BITMAP *buffer, BITMAP *accion){
    if (Estado == 1){
        if (dir == 1){
            if (contador < 3){
                blit(accion,buffer_pers,contador*37,0,0,0,37,37);
                draw_sprite(buffer,buffer_pers,posx,posy);
                rest(80);
            }
            else{
                contador = 0;
            }
            contador++;
        }
        else{
            if (restador >= 0){
                blit(accion,buffer_pers,restador*37,0,0,0,37,37);
                draw_sprite(buffer,buffer_pers,posx,posy);
                rest(80);
            }
            else{
                restador = 2;
            }
            restador--;
        }
    }
}

void Personaje::caminar(){
    if (dir==1 and posx < ancho_pantalla-ancho){
        posx +=10;
    }
    else if(dir == -1 and posx >= 0){
        posx -= 10;
    }

}


//----------------------------struct--------------------------------

BITMAP *buffer;
BITMAP *mario_buffer;
BITMAP *mario_parado;
BITMAP *mario_paradoI;
BITMAP *mario_caminar;
BITMAP *mario_caminarI;

void pantalla(){
    blit(buffer,screen,0,0,0,0,ancho_pantalla,alto_pantalla);
}

int main()
{
    inicia_allegro(ancho_pantalla,alto_pantalla);
    inicia_audio(70,70);

    buffer = create_bitmap(ancho_pantalla, alto_pantalla);
    mario_buffer = create_bitmap(37,37);
    mario_parado = load_bitmap("recursos/parado.bmp",NULL);
    mario_paradoI = load_bitmap("recursos/parado_i.bmp",NULL);
    mario_caminar = load_bitmap("recursos/caminar_adelante.bmp",NULL);
    mario_caminarI = load_bitmap("recursos/caminar_atras.bmp",NULL);

    Personaje mario(mario_parado, mario_buffer);

    while (!key[KEY_ESC]){
        if (key[KEY_D]){
            mario.dir = 1;
            mario.Estado = 1;
            mario.caminar();
        }
        else if(key[KEY_A]){
            mario.dir = -1;
            mario.Estado = 1;
            mario.caminar();
        }
        else if (keypressed){
            mario.Estado = 0;
        }
        clear(buffer);
        if (mario.Estado == 0){
            if (mario.dir == 1){
                mario.Dibujar(buffer,NULL);
            }
            else{
                mario.Dibujar(buffer,mario_paradoI);
            }
        }
        else{
            if(mario.dir == 1) mario.Dibujar_accion(buffer,mario_caminar);
            else mario.Dibujar_accion(buffer,mario_caminarI);
        }
        pantalla();
        rest(30);
    }

    destroy_bitmap(buffer);

    return 0;
}
END_OF_MAIN();
  #2 (permalink)  
Antiguo 21/11/2013, 02:29
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: no funciona doble buffering en allegro con c++

Código C++:
Ver original
  1. blit(accion,buffer_pers,restador*37,0,0,0,37,37);
  2. draw_sprite(buffer,buffer_pers,posx,posy);
  3. rest(80);
El problema está en ese rest.
  #3 (permalink)  
Antiguo 21/11/2013, 12:40
 
Fecha de Ingreso: noviembre-2013
Mensajes: 5
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: no funciona doble buffering en allegro con c++

Cita:
Iniciado por amchacon Ver Mensaje
Código C++:
Ver original
  1. blit(accion,buffer_pers,restador*37,0,0,0,37,37);
  2. draw_sprite(buffer,buffer_pers,posx,posy);
  3. rest(80);
El problema está en ese rest.
Muchisisisismas gracias por responder tan rápido enserio me sorprendió si ese rest lo elimine antes pero no sigue parpadenado la pantalla no entiendo cual sería el problema elimine todos los rest y sique parpadeando solo que más rápido el rest que tu quitaste era solo para que la animación fuera más lenta
  #4 (permalink)  
Antiguo 21/11/2013, 12:49
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: no funciona doble buffering en allegro con c++

Prueba a bloquear el screen:

Código C:
Ver original
  1. void pantalla() {
  2.     acquire_screen();
  3.     blit(buffer, screen, 0, 0, 0, 0, ancho_pantalla, alto_pantalla);
  4.     release_screen();
  5. }

Saludos
vosk
  #5 (permalink)  
Antiguo 21/11/2013, 13:25
 
Fecha de Ingreso: noviembre-2013
Mensajes: 5
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: no funciona doble buffering en allegro con c++

Cita:
Iniciado por vosk Ver Mensaje
Prueba a bloquear el screen:

Código C:
Ver original
  1. void pantalla() {
  2.     acquire_screen();
  3.     blit(buffer, screen, 0, 0, 0, 0, ancho_pantalla, alto_pantalla);
  4.     release_screen();
  5. }

Saludos
vosk

Muchisisisisisimas gracias vosk por tu pronta respuesta pues acabo de probar lo de bloquear el screen y no me funciona no se por que y ahora es más extraño por que comente el "clear(buffer);" y apesar de ello me sigue limpiando la pantalla al correrlo y no se por quee :O anexo mi codigo que agregué algunas cosas para que lo puedan revisar:

Código:
#include <allegro.h>
#include "inicia.h"

#define ancho_pantalla 800
#define alto_pantalla 600

//------------------------POO----------------------------
class Personaje
{
    public:
        BITMAP *Personaj;
        BITMAP *buffer_pers;
        int ancho, alto, posx, posy, Estado, dir, contador, restador;
        Personaje(BITMAP *pers, BITMAP *mini_buffer);
        void Dibujar(BITMAP *buffer, BITMAP *izquierda);
        void Dibujar_accion(BITMAP *buffer, BITMAP *accion);
        void caminar();
        void Correr();
        void Saltar();
        void morir();
        void Agacharse();
        void Disparar();
        void Matar();
};

Personaje::Personaje(BITMAP *pers, BITMAP *mini_buffer){
    Personaj = pers;
    buffer_pers = mini_buffer;
    dir = 1;
    ancho = 37;
    alto = 37;
    posx = 0;
    posy = 100;
    contador = 0;
    Estado = 0;
    restador = 2;
}

void Personaje::Dibujar(BITMAP *buffer, BITMAP *izquierda){
    if (dir == 1){
        blit(Personaj,buffer_pers,0,0,0,0,37,37);
        draw_sprite(buffer,buffer_pers,posx,posy);
    }
    else{
        blit(izquierda,buffer_pers,0,0,0,0,37,37);
        draw_sprite(buffer,buffer_pers,posx,posy);
    }
}

void Personaje::Dibujar_accion(BITMAP *buffer, BITMAP *accion){
    if (Estado == 1){
        if (dir == 1){
            if (contador < 3){
                blit(accion,buffer_pers,contador*37,0,0,0,37,37);
                draw_sprite(buffer,buffer_pers,posx,posy);
                rest(80);
            }
            else{
                contador = 0;
            }
            contador++;
        }
        else{
            if (restador >= 0){
                blit(accion,buffer_pers,restador*37,0,0,0,37,37);
                draw_sprite(buffer,buffer_pers,posx,posy);
                rest(80);
            }
            else{
                restador = 2;
            }
            restador--;
        }
    }
}

void Personaje::caminar(){
    if (dir==1 and posx < ancho_pantalla-ancho){
        posx +=10;
    }
    else if(dir == -1 and posx >= 0){
        posx -= 10;
    }

}


//----------------------------struct--------------------------------

BITMAP *buffer;
BITMAP *mario_buffer;
BITMAP *mario_parado;
BITMAP *mario_paradoI;
BITMAP *mario_caminar;
BITMAP *mario_caminarI;
BITMAP *cielo_dia;

void pantalla(){
    acquire_screen();
    blit(buffer, screen, 0, 0, 0, 0, ancho_pantalla, alto_pantalla);
    release_screen();
}

void dibujar_mapa(){
    blit(cielo_dia,buffer,0,0,0,0,ancho_pantalla,alto_pantalla);
}

int main()
{
    inicia_allegro(ancho_pantalla,alto_pantalla);
    inicia_audio(70,70);

    buffer = create_bitmap(ancho_pantalla, alto_pantalla);
    mario_buffer = create_bitmap(37,37);
    mario_parado = load_bitmap("recursos/parado.bmp",NULL);
    mario_paradoI = load_bitmap("recursos/parado_i.bmp",NULL);
    mario_caminar = load_bitmap("recursos/caminar_adelante.bmp",NULL);
    mario_caminarI = load_bitmap("recursos/caminar_atras.bmp",NULL);
    cielo_dia = load_bitmap("recursos/cielo_dia.bmp",NULL);

    Personaje mario(mario_parado, mario_buffer);

    while (!key[KEY_ESC]){
        if (key[KEY_D]){
            mario.dir = 1;
            mario.Estado = 1;
            mario.caminar();
        }
        else if(key[KEY_A]){
            mario.dir = -1;
            mario.Estado = 1;
            mario.caminar();
        }
        else if (keypressed){
            mario.Estado = 0;
        }
//        clear(buffer);
        dibujar_mapa();

        if (mario.Estado == 0){
            if (mario.dir == 1){
                mario.Dibujar(buffer,NULL);
            }
            else{
                mario.Dibujar(buffer,mario_paradoI);
            }
        }
        else{
            if(mario.dir == 1) mario.Dibujar_accion(buffer,mario_caminar);
            else mario.Dibujar_accion(buffer,mario_caminarI);
        }
        pantalla();
        rest(40);
    }

    destroy_bitmap(buffer);

    return 0;
}
END_OF_MAIN();
  #6 (permalink)  
Antiguo 21/11/2013, 13:52
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: no funciona doble buffering en allegro con c++

Per quita el rest tal como te comentó amchacon; cualquier cosa que bloquea el videojuego lo hará parpadear.

El clear(buffer) puedes dejarlo, pero solo te será util en casos que no tengas transparencias y siempre sobreescribas el buffer entero, de lo contrario te quedan restos del dibujo anterior.

Saludos
vosk
  #7 (permalink)  
Antiguo 21/11/2013, 14:00
 
Fecha de Ingreso: noviembre-2013
Mensajes: 5
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: no funciona doble buffering en allegro con c++

gracias por la respuesta vosk pues de echo ya quite todos los rest y el clear y la pantalla sigue con parpadeo no se por que eso es lo raro se supone que con el doble buffering no habría problema :O
  #8 (permalink)  
Antiguo 21/11/2013, 16:37
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: no funciona doble buffering en allegro con c++

Código C++:
Ver original
  1. blit(Personaj,buffer_pers,0,0,0,0,37,37);
  2.         draw_sprite(buffer,buffer_pers,posx,posy);
¿? Por qué no dibujas directamente en buffer?
Cita:
Iniciado por vosk Ver Mensaje
Prueba a bloquear el screen:

Código C:
Ver original
  1. void pantalla() {
  2.     acquire_screen();
  3.     blit(buffer, screen, 0, 0, 0, 0, ancho_pantalla, alto_pantalla);
  4.     release_screen();
  5. }

Saludos
vosk
Eso no hace falta, blit ya lo hace por ti.
  #9 (permalink)  
Antiguo 21/11/2013, 16:51
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: no funciona doble buffering en allegro con c++

Ok, hace que no uso allegro4 y crei que me acordaba; acabo de revisarlo (pero no porque no me crea lo que dices amchacon :) ): bloquear solo para hacer mas de una operacion sobre la imagen.

Saludos y perdon por el error
vosk
  #10 (permalink)  
Antiguo 22/11/2013, 15:56
 
Fecha de Ingreso: noviembre-2013
Mensajes: 5
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: no funciona doble buffering en allegro con c++

Cita:
Iniciado por vosk Ver Mensaje
Ok, hace que no uso allegro4 y crei que me acordaba; acabo de revisarlo (pero no porque no me crea lo que dices amchacon :) ): bloquear solo para hacer mas de una operacion sobre la imagen.

Saludos y perdon por el error
vosk
Ntp y muchisisismas gracias por las respuestas ps lo que ha pasado es que sigue sin funcionar ayer no pude responder por que mi internet estuvo terrible :/ pero bueno ayer me di cuenta que el clear lo genera automáticamente la funcion que yo cree llamada dibujar_accion() no se por que, anexo mi codigo lo volví mejor estructurado y no poo :p no se por que pero aunque no tenga el clear(buffer) mi buffer se limpia solo :O gracias por las respuestas

Código C++:
Ver original
  1. #include <allegro.h>
  2. #include "inicia.h"
  3.  
  4. #define ancho_pantalla 540
  5. #define alto_pantalla 460
  6. #define maxcols 37
  7. #define maxfils 15
  8. #define tope_mario (ancho_pantalla-37)/2
  9.  
  10. BITMAP *buffer;
  11. BITMAP *save_buffer;
  12. BITMAP *mario_buffer;
  13. BITMAP *mario_parado;
  14. BITMAP *mario_paradoI;
  15. BITMAP *mario_caminar;
  16. BITMAP *mario_caminarI;
  17. BITMAP *mario_salta;
  18. BITMAP *mario_saltaI;
  19. BITMAP *cielo_dia;
  20. BITMAP *piso_superficie;
  21. BITMAP *montanna;
  22. BITMAP *arbusto;
  23. BITMAP *nube;
  24. BITMAP *sorpresa;
  25. BITMAP *sorp_buffer;
  26.  
  27. int ancho, alto, posx, posy, Estado, dir, contador, restador;
  28. int cont,cont2,avance, veces=0;
  29.  
  30. char mapa[maxfils][maxcols]={
  31.     "                                    ",
  32.     "                                    ",
  33.     "                                    ",
  34.     "                                    ",
  35.     "          N                         ",
  36.     "                                    ",
  37.     "                                    ",
  38.     "                                    ",
  39.     "                                    ",
  40.     "                   S                ",
  41.     "                                    ",
  42.     "M          a    M                   ",
  43.     "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  44.     "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  45. };
  46.  
  47. void Dibujar(){
  48.     if (dir == 1){
  49.         draw_sprite(buffer,mario_parado,posx,posy);
  50.     }
  51.     else{
  52.         draw_sprite(buffer,mario_paradoI,posx,posy);
  53.     }
  54. }
  55.  
  56. void caminar(){
  57.     if (dir==1 and posx < tope_mario){
  58.         posx +=10;
  59.     }
  60.     else if(dir == -1 and posx >= 0){
  61.         posx -= 10;
  62.     }
  63.  
  64. }
  65.  
  66. void Saltar(int veces){
  67.     if(posy > 252 && veces < 10){
  68.         Estado = 2;
  69.         posy-=14;
  70.     }
  71.     else{
  72.         if(posy != 375){
  73.             Estado = 2;
  74.             posy+=14;
  75.         }
  76.     }
  77. }
  78.  
  79. void Dibujar_accion(BITMAP *accion){
  80.     if (Estado == 1){
  81.         if (dir == 1){
  82.             if (contador < 5){
  83.                 blit(accion,mario_buffer,contador*37,0,0,0,37,37);
  84.                 draw_sprite(buffer,mario_buffer,posx,posy);
  85.             }
  86.             else{
  87.                 contador = 0;
  88.             }
  89.             contador++;
  90.         }
  91.         else{
  92.             if (restador >= -2){
  93.                 blit(accion,mario_buffer,restador*37,0,0,0,37,37);
  94.                 draw_sprite(buffer,mario_buffer,posx,posy);
  95.             }
  96.             else{
  97.                 restador = 2;
  98.             }
  99.             restador--;
  100.         }
  101.     }
  102.     else if(Estado == 2){
  103.         draw_sprite(buffer,accion,posx,posy);
  104.     }
  105. }
  106.  
  107. void pantalla(){
  108.     blit(buffer, screen, 0, 0, 0, 0, ancho_pantalla, alto_pantalla);
  109. }
  110.  
  111. void dibujar_mapa(int pos_X,int estado, int dir){
  112.     int x=-1,j,i,aux=0;
  113.  
  114.     if (pos_X > tope_mario-40 && estado==1 && dir == 1){
  115.         avance+=10;
  116.     }
  117.  
  118.     blit(cielo_dia,buffer,0,0,0,0,ancho_pantalla,alto_pantalla);
  119.     for ( i=0; i<=maxfils; i++){
  120.         for( j=0; j<=maxcols; j++){
  121.             if (x < maxcols)
  122.             {
  123.                 x++;
  124.             }
  125.             else{
  126.                 x=0;
  127.             }
  128.             if (mapa[i][j] == 'X'){
  129.                 blit(piso_superficie,buffer,0,0,(x*34)-avance,i*34,2000,alto_pantalla);
  130.             }
  131.             else if(mapa[i][j] == 'M'){
  132.                 masked_blit(montanna,buffer,0,0,(x*34)-avance,i*30,2000,alto_pantalla);
  133.             }
  134.             else if(mapa[i][j] == 'a'){
  135.                 masked_blit(arbusto,buffer,0,0,(x*34)-avance,i*33,2000,alto_pantalla);
  136.             }
  137.             else if(mapa[i][j] == 'N'){
  138.                 masked_blit(nube,buffer,0,0,(x*34)-avance,i*33,2000,alto_pantalla);
  139.             }
  140.             else if(mapa[i][j] == 'S'){
  141.                 if (aux == 0)   aux = x;
  142.                 blit(sorpresa,sorp_buffer,cont2*32,0,0,0,32,32);
  143.                 masked_blit(sorp_buffer,buffer,0,0,(aux*34)-avance,i*32,2000,alto_pantalla);
  144.             }
  145.         }
  146.     }
  147.     cont++;
  148.     if (cont == 2){
  149.         cont =0;
  150.         if (cont2 <2)
  151.             cont2++;
  152.         else
  153.             cont2 = 0;
  154.     }
  155. }
  156.  
  157. //void gravedad(Personaje mario){
  158. //    while(posy != )
  159. //}
  160.  
  161. int main()
  162. {
  163.     inicia_allegro(ancho_pantalla,alto_pantalla);
  164.     inicia_audio(70,70);
  165.  
  166.     dir = 1;
  167.     ancho = 37;
  168.     alto = 37;
  169.     posx = 0;
  170.     posy = 375;
  171.     contador = 0;
  172.     Estado = 0;
  173.     restador = 2;
  174.  
  175.     cont = 0;
  176.     buffer = create_bitmap(ancho_pantalla, alto_pantalla);
  177.     save_buffer = create_bitmap(ancho_pantalla, alto_pantalla);
  178.     mario_buffer = create_bitmap(37,37);
  179.     mario_parado = load_bitmap("recursos/parado.bmp",NULL);
  180.     mario_paradoI = load_bitmap("recursos/parado_i.bmp",NULL);
  181.     mario_caminar = load_bitmap("recursos/caminar_adelante.bmp",NULL);
  182.     mario_caminarI = load_bitmap("recursos/caminar_atras.bmp",NULL);
  183.     mario_salta = load_bitmap("recursos/salta.bmp",NULL);
  184.     mario_saltaI = load_bitmap("recursos/salta_i.bmp",NULL);
  185.     cielo_dia = load_bitmap("recursos/cielo_dia.bmp",NULL);
  186.     piso_superficie = load_bitmap("recursos/piso_superficie.bmp",NULL);
  187.     montanna = load_bitmap("recursos/montanna.bmp",NULL);
  188.     arbusto = load_bitmap("recursos/arbusto.bmp",NULL);
  189.     nube = load_bitmap("recursos/nube.bmp",NULL);
  190.     sorpresa = load_bitmap("recursos/sorpresa.bmp",NULL);
  191.     sorp_buffer = create_bitmap(32,32);
  192.  
  193.     while (!key[KEY_ESC]){
  194.         if (key[KEY_D]){
  195.             if(posy == 375){
  196.                 dir = 1;
  197.                 caminar();
  198.                 Estado = 1;
  199.             }
  200.             else{
  201.                 posy+=14;
  202.                 Estado =2;
  203.             }
  204.         }
  205.         else if(key[KEY_A]){
  206.             if (posy == 375){
  207.                 Estado = 1;
  208.                 dir = -1;
  209.                 caminar();
  210.             }
  211.             else{
  212.                 posy+=14;
  213.                 Estado = 2;
  214.             }
  215.         }
  216.         else if (key[KEY_W]){
  217.             Estado =2;
  218.                 veces++;
  219.             Saltar(veces);
  220.         }
  221.         else if (keypressed){
  222.             if( posy != 375){
  223.                 Estado == 2;
  224.                 posy+=14;
  225.             }
  226.             else {
  227.                 Estado = 0;
  228.                 veces = 0;
  229.             }
  230.         }
  231. //        clear(buffer);
  232.  
  233.         dibujar_mapa(posx,Estado,dir);
  234.         if (Estado == 0){
  235.             if (dir == 1){
  236.                 Dibujar();
  237.             }
  238.             else{
  239.                 Dibujar();
  240.             }
  241.         }
  242.         else if (Estado == 1){
  243.             if(dir == 1)  Dibujar_accion(mario_caminar);
  244.             else    Dibujar_accion(mario_caminarI);
  245.         }
  246.         else if (Estado == 2){
  247.             if (dir == 1) Dibujar_accion(mario_salta);
  248.             else    Dibujar_accion(mario_saltaI);
  249.         }
  250.  
  251. //        gravedad();
  252.         pantalla();
  253.         rest(70);
  254.     }
  255.  
  256.     destroy_bitmap(buffer);
  257.     destroy_bitmap(mario_buffer);
  258.     destroy_bitmap(mario_caminar);
  259.     destroy_bitmap(mario_caminarI);
  260.     destroy_bitmap(mario_parado);
  261.     destroy_bitmap(mario_paradoI);
  262.     destroy_bitmap(cielo_dia);
  263.  
  264.     return 0;
  265. }
  266. END_OF_MAIN();

Etiquetas: juego
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:00.