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

[Allegro]Błąd przy kilku plikach w projekcie

Ostatnio zmodyfikowano 2013-05-15 20:04
Autor Wiadomość
Loodwin
Temat założony przez niniejszego użytkownika
[Allegro]Błąd przy kilku plikach w projekcie
» 2013-05-15 15:49:49
Witam!
Dzisiaj chciałem się trochę "pobawić" i próbowałem rozdzielić kod na klika plików, lecz gdy wszystko zrobiłem i poukładałem tak jak trzeba to przy kompilacji wyskakuje mi, że wiele definicji mx,my,mb,bufor,tlo,kursor. Nie wiem co jest źle, więc proszę o pomoc.
Tu plik main.cpp:
C/C++
#include <allegro.h>
#include "wttf.h"

int main()
{
    allegro_init();
    install_keyboard();
    set_color_depth( 16 );
    set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0 );
   
   
    ladowanie();
    install_mouse();
    show_mouse( screen );
    set_mouse_sprite( kursor );
    unscare_mouse();
   
    while( !key[ KEY_ESC ] )
    {
        clear_to_color( bufor, makecol( 100, 100, 100 ) );
        myszka();
        blit( tlo, bufor, 0, 0, 0, 0, 800, 600 );
        textprintf_ex( bufor, font, 20, 20, makecol( 200, 200, 200 ), - 1, "Myszka x = %d, y = %d, klawisz = %d !", mx, my, mb );
        blit( bufor, screen, 0, 0, 0, 0, 800, 600 );
        clear_keybuf();
    }
   
    destroy_bitmap( bufor );
    destroy_bitmap( kursor );
    allegro_exit();
    return 0;
}
END_OF_MAIN();

Tu wttf.h :
C/C++
#ifndef _wttf_HPP
#define _wttf_HPP


void ladowanie();
void myszka();

int mx;
int my;
int mb;

BITMAP * kursor;
BITMAP * tlo;
BITMAP * bufor;

#endif

A tu wttf.cpp :

C/C++
#include <allegro.h>
#include "wttf.h"

void ladowanie()
{
    bufor = create_bitmap( 800, 600 );
   
    kursor = load_bitmap( "graphic/kursor.bmp", NULL );
    if( !kursor )
    {
        set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
        allegro_message( "Nie moge zaladowac grafiki ( kursor )" );
        allegro_exit();
    }
   
    tlo = load_bitmap( "graphic/tlo.bmp", NULL );
    if( !tlo )
    {
        set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
        allegro_message( "Nie moge zaladowac grafiki ( tlo )" );
        allegro_exit();
    }
};

void myszka()
{
    mx = 0;
    my = 0;
    mb = 0;
    if( mx != mouse_x || my != mouse_y || mb != mouse_b )
    {
        mx = mouse_x;
        my = mouse_y;
        mb = mouse_b;
    }
};
Z góry dzięki za pomoc.
P-82998
Saluter
» 2013-05-15 16:20:16
Zdefiniuj zmienne w pliku źródłowym, a nie nagłówkowym.
I umieść w main.cpp deklaracje tych zmiennych.

Przykład:
extern int mx;

Poinformuje to kompilator o typie tych zmiennych.
P-83003
Loodwin
Temat założony przez niniejszego użytkownika
Spoko
» 2013-05-15 20:04:40
Dzięki. Wszystko działa jak należy. Po prostu za mało wiedzy :D Przepraszam za stracony czas.
P-83041
« 1 »
  Strona 1 z 1