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

Problem z allegro

Ostatnio zmodyfikowano 2012-08-28 11:34
Autor Wiadomość
Forczek
Temat założony przez niniejszego użytkownika
Problem z allegro
» 2012-08-28 10:41:57
Siemka, postanowiłem napisać nową grę. Lecz mam problem z kompilatorem. Najpierw kod:

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

int mx = 0, my = 0, mb = 0;
void myszka()
{
    if( mx != mouse_x || my != mouse_y || mb != mouse_b )
    {
        mx = mouse_x;
        my = mouse_y;
        mb = mouse_b;
    }
};

int main()
{
    allegro_init();
    install_keyboard();
    set_color_depth( 16 );
    set_gfx_mode( GFX_AUTODETECT_WINDOWED, 1000, 800, 0, 0 );
    install_mouse();
    show_mouse( screen );
    BITMAP * kursor = NULL;
    kursor = load_bmp( "kursor.bmp", default_palette );
    set_mouse_sprite( kursor );
    unscare_mouse();
   
    BITMAP * bufor = NULL;
    BITMAP * menu = NULL;
    BITMAP * przycisk11 = NULL;
    BITMAP * przycisk12 = NULL;
    BITMAP * przycisk13 = NULL;
    BITMAP * przycisk14 = NULL;
    BITMAP * przycisk15 = NULL;
    BITMAP * przycisk21 = NULL;
    BITMAP * przycisk22 = NULL;
    BITMAP * przycisk23 = NULL;
    BITMAP * przycisk24 = NULL;
    BITMAP * przycisk25 = NULL;
    bufor = create_bitmap( 1000, 800 );
    menu = load_bmp( "menu.bmp", default_palette );
    przycisk11 = load_bmp( "przycisk1" );
    przycisk12 = load_bmp( "przycisk1" );
    przycisk13 = load_bmp( "przycisk1" );
    przycisk14 = load_bmp( "przycisk1" );
    przycisk15 = load_bmp( "przycisk1" );
    przycisk21 = load_bmp( "przycisk2" );
    przycisk22 = load_bmp( "przycisk2" );
    przycisk23 = load_bmp( "przycisk2" );
    przycisk24 = load_bmp( "przycisk2" );
    przycisk25 = load_bmp( "przycisk2" );
   
    int menu = 1;
   
    while( menu == 0 )
    {
        if( menu == 1 )
        {
            if( my <= 550 || my >= 500 || mx <= 650 || mx >= 350 )
            {
                blit( przycisk21, menu, 0, 0, 0, 0, 525, 500 );
            }
            else
            {
                blit( przycisk11, menu, 0, 0, 0, 0, 525, 500 );
            }
            if( my <= 475 || my >= 425 || mx <= 650 || mx >= 350 )
            {
                blit( przycisk22, menu, 0, 0, 0, 0, 450, 500 );
            }
            else
            {
                blit( przycisk12, menu, 0, 0, 0, 0, 450, 500 );
            }
            if( my <= 400 || my >= 350 || mx <= 650 || mx >= 350 )
            {
                blit( przycisk23, menu, 0, 0, 0, 0, 375, 500 );
            }
            else
            {
                blit( przycisk13, menu, 0, 0, 0, 0, 375, 500 );
            }
            if( my <= 325 || my >= 275 || mx <= 650 || mx >= 350 )
            {
                blit( przycisk24, menu, 0, 0, 0, 0, 300, 500 );
            }
            else
            {
                blit( przycisk14, menu, 0, 0, 0, 0, 300, 500 );
            }
            if( my <= 250 || my >= 200 || mx <= 650 || mx >= 350 )
            {
                blit( przycisk25, menu, 0, 0, 0, 0, 225, 500 );
            }
            else
            {
                blit( przycisk15 menu, 0, 0, 0, 0, 225, 500 );
            }
            if( key[ KEY_Q ] )
            {
                menu = 0;
            }
        }
        myszka();
        blit( bufor, screen, 0, 0, 0, 0, 1000, 800 );
    }
    destroy_bitmap( przycisk11 );
    destroy_bitmap( przycisk12 );
    destroy_bitmap( przycisk13 );
    destroy_bitmap( przycisk14 );
    destroy_bitmap( przycisk15 );
    destroy_bitmap( przycisk21 );
    destroy_bitmap( przycisk22 );
    destroy_bitmap( przycisk23 );
    destroy_bitmap( przycisk24 );
    destroy_bitmap( przycisk25 );
    destroy_bitmap( menu );
    destroy_bitmap( kursor );
    destroy_bitmap( bufor );
    return 0;
}
END_OF_MAIN();
mam błąd kompilacji, nie czyta mi prostych kodów typu:
kursor = load_bmp( "kursor.bmp", default_palette );
int menu = 1;
Sprawdźcie czy u was działa, jeżeli tak mam błąd z kompilatorem. Co może być nie tak mam ścieżki do include i lib, w compiler and debugger.
P-63850
kubawal
» 2012-08-28 10:43:27
Podaj loga kompilatora
/edit: kod daj w [cpp]...[/cpp]. Będzie łatwiej czytać.
P-63851
m4tx
» 2012-08-28 10:55:40
C/C++
include < allegro.h >
Jeśli to nie literówka, to przed dyrektywami preprocesora piszemy znak #, a po - spację. Powinno to wyglądać tak:
#include <allegro.h>
.
P-63852
Forczek
Temat założony przez niniejszego użytkownika
» 2012-08-28 11:00:17
W kompilatorze mam normalnie z #. Tu mi źle przekopiowało.
P-63855
Mrovqa
» 2012-08-28 11:04:40
a po - spację.
W przypadku include'a nie trzeba ;) Zapisy
C/C++
#include<header.h>
#include"header.h"
są poprawne ;)

//przynajmniej pod preprocesorem pakietu MinGW (nie pamiętam nazwy exeka) :D
P-63857
m4tx
» 2012-08-28 11:07:24
Tak, wiem, że spacja jest zbędna, ale ze spacją jest IMHO czytelniej :P
P-63858
ison
» 2012-08-28 11:07:35
C/C++
int menu = 1;

while( menu == 0 )
{
to nie ma sensu
P-63859
Forczek
Temat założony przez niniejszego użytkownika
» 2012-08-28 11:19:25
Niby czemu pętla kończy się kiedy menu jest równe 0.
Na początku ma 1 więc if( menu == 1 ) wyświetla się menu początkowe. Na razie nie ma startu gry, więc if( key[ KEY_Q ] ) menu == 0.
P-63862
« 1 » 2
  Strona 1 z 2 Następna strona