Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Połączenie Dźwięku, animacji, klawiatury i myszki z kursu Allegro

Ostatnio zmodyfikowano 2009-09-26 10:43
Autor Wiadomość
Daikuu
Temat założony przez niniejszego użytkownika
Połączenie Dźwięku, animacji, klawiatury i myszki z kursu Allegro
» 2009-09-26 10:35:46
Witam.
Przed chwilą skończyłem czytać ten kurs
http://kursy.ddt.pl/?TutorialId=7

i mam problem.
Chciałbym bardzo połączyć wszystkie te opcje. Głównie dźwięk, animacje i klawiature.
Mam tutaj kod i nie wiem czemu wyskakują mi błędy.
Jak usune linijke z BITMAP *Bufor to nie mam błędów ale tak... chodze sobie moim ludzikiem po ekranie "gry". Wcisne esc i zacina sie i słychać dźwięk. Wciskam jeszcze raz Esc i się wyłącza cały program.

TAKIE MAM BŁĘDY:


In function `int _mangled_main()':
redeclaration of `BITMAP*bufor'
`BITMAP*bufor' previously declared here
[Build Error]  [Twierdza.o] Error 1


Kod:

C/C++
#include <allegro.h>
volatile long speed = 0;
void increment_speed()
{
    speed++;
}
END_OF_FUNCTION( increment_speed );
LOCK_VARIABLE( speed );
LOCK_FUNCTION( increment_speed );
int main()
{
    allegro_init();
    install_keyboard();
    set_color_depth( 16 );
    set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0 );
    install_timer();
    install_int_ex( increment_speed, BPS_TO_TIMER( 80 ) );
    clear_to_color( screen, makecol( 128, 128, 128 ) );
   
    BITMAP * bufor = NULL;
    BITMAP * ludek0 = NULL;
    BITMAP * ludek1 = NULL;
    BITMAP * ludek2 = NULL;
    BITMAP * ludek3 = NULL;
    BITMAP * bufor = NULL;
    SAMPLE * dzwiek = NULL;
   
    bufor = create_bitmap( 640, 480 );
    if( !bufor )
    {
        set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
        allegro_message( "Nie mogę utworzyć bufora !" );
        allegro_exit();
        return 0;
    }
   
    ludek0 = load_bmp( "ludek0.bmp", default_palette );
    ludek1 = load_bmp( "ludek1.bmp", default_palette );
    ludek2 = load_bmp( "ludek2.bmp", default_palette );
    ludek3 = load_bmp( "ludek3.bmp", default_palette );
   
    int ludek_x = 100, ludek_y = 100;
    int frame = 0;
   
    while( !key[ KEY_ESC ] )
    {
        while( speed > 0 )
        {
           
            if( key[ KEY_LEFT ] ) ludek_x--;
           
            if( key[ KEY_RIGHT ] ) ludek_x++;
           
            if( key[ KEY_UP ] ) ludek_y--;
           
            if( key[ KEY_DOWN ] ) ludek_y++;
           
            speed--;
           
            frame++;
            if( frame > 80 ) frame = 0;
           
        }
       
        clear_to_color( bufor, makecol( 150, 150, 150 ) );
       
        if( frame < 20 ) { draw_sprite( bufor, ludek0, ludek_x, ludek_y ); }
        else if( frame >= 20 && frame < 40 ) { draw_sprite( bufor, ludek1, ludek_x, ludek_y ); }
        else if( frame >= 40 && frame < 60 ) { draw_sprite( bufor, ludek2, ludek_x, ludek_y ); }
        else if( frame >= 60 && frame < 80 ) { draw_sprite( bufor, ludek3, ludek_x, ludek_y ); }
       
        blit( bufor, screen, 0, 0, 0, 0, 640, 480 );
    }
   
   
    install_sound( DIGI_AUTODETECT, MIDI_AUTODETECT, "" );
    set_volume( 255, 255 );
    bufor = create_bitmap( 640, 480 );
    if( !bufor )
    {
        set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
        allegro_message( "Nie mogę utworzyć bufora !" );
        allegro_exit();
        return 0; }
    dzwiek = load_sample( "warkot01.wav" );
    if( !dzwiek )
    {
        set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
        allegro_message( "nie mogę załadować dzwieku !" );
        allegro_exit();
        return 0;
    }
    play_sample( dzwiek, 255, 127, 1000, 1 );
   
    while( !key[ KEY_ESC ] )
    {
        if( key[ KEY_A ] ) { adjust_sample( dzwiek, 255, 127, 500, 1 ); }
        if( key[ KEY_S ] ) { adjust_sample( dzwiek, 255, 127, 2000, 1 ); }
        if( key[ KEY_D ] ) { adjust_sample( dzwiek, 255, 0, 1000, 1 ); }
        if( key[ KEY_F ] ) { adjust_sample( dzwiek, 255, 255, 1000, 1 ); }
       
    }
   
   
    stop_sample( dzwiek );
    destroy_bitmap( bufor );
    destroy_sample( dzwiek );
    remove_int( increment_speed );
    destroy_bitmap( ludek0 );
    destroy_bitmap( ludek1 );
    destroy_bitmap( ludek2 );
    destroy_bitmap( ludek3 );
    destroy_bitmap( bufor );
   
   
   
   
    allegro_exit();
    return 0;
}
END_OF_MAIN();
P-10439
pixelmaster
» 2009-09-26 10:43:03
2 razy zdeklarowałeś bufor.
Wywal po jednym
C/C++
BITMAP * bufor = NULL;
//--
destroy_bitmap( bufor );
P-10440
« 1 »
  Strona 1 z 1