steckel Temat założony przez niniejszego użytkownika |
allegro - tworzenie bitmap » 2009-03-31 17:00:20 Witam! Rozpocząłem naukę biblioteki graficznej allegro i już mam pierwszy problem: #include <allegro.h>
const int szerokosc = 70; const int wysokosc = 50; const int krawedz = 10;
BITMAP ** plansza_bitmap; int ** plansza_int;
void allegro(); void inicjalizacja();
int main() { allegro(); readkey(); allegro_exit(); return 0; } END_OF_MAIN();
void allegro() { allegro_init(); install_keyboard(); set_color_depth( 8 ); set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0 ); set_palette( default_palette ); clear_to_color( screen, 0 ); }
void inicjalizacja() { plansza_bitmap = new BITMAP *[ szerokosc ]; for( int a = 0; a < szerokosc; a++ ) plansza_bitmap[ a ] = new BITMAP[ wysokosc ]; for( int a = 0; a < szerokosc; a++ ) { for( int b = 0; b < wysokosc; b++ ) { plansza_bitmap[ a ][ b ] = create_bitmap( krawedz, krawedz ); } } } Błędy: C:\Users\Patryk\main.cpp In function `void inicjalizacja()':
40 C:\Users\Patryk\main.cpp no match for 'operator=' in '*((*((+(((unsigned int)a) * 4u)) + plansza_bitmap)) + (+(((unsigned int)b) * 64u))) = create_bitmap(10, 10)'
note C:\Dev-Cpp\include\allegro\gfx.h:262 candidates are: BITMAP& BITMAP::operator=(const BITMAP&)
C:\Users\Patryk\Makefile.win [Build Error] [main.o] Error 1 //Nie rób 2 takich samych tematów Patzick |
|
Patzick |
» 2009-03-31 17:11:20 hmm tak na pierwszy rzut oka z tego co pamiętam bitmapę tworzyło się tak plansza_bitmap = create_bitmap( szerokosc, wysokosc ); Dodatkowo na początku jak definiujesz bitmapę powinno być (zalecane) BITMAP * plansza_bitmap = NULL; Wszystko w kursie jest więc najpierw przestudiuj teorię :) |
|
steckel Temat założony przez niniejszego użytkownika |
» 2009-03-31 17:24:11 plansza_bitmap = create_bitmap(szerokosc,wysokosc); Zamiast 'szerokosc' i 'wysokosc' dałem 'krawedz' i 'krawedz', więc nie powinno być problemów. BITMAP *plansza_bitmap = NULL; To też nie działa, poza tym od razu tworzę bitmap. Może ma to jakiś związek z tablicowaniem zmiennych 'BITMAP'? //edit Już sobie z tym poradziłem :) Zamieszczę rozwiązanie, aby inni nie mieli tego samego problemu:
BITMAP *** plansza_bitmap;
void inicjalizacja() { plansza_bitmap = new BITMAP **[ szerokosc ]; for( int a = 0; a < szerokosc; a++ ) plansza_bitmap[ a ] = new BITMAP *[ wysokosc ]; }
|
|
steckel Temat założony przez niniejszego użytkownika |
» 2009-03-31 19:46:38 Teraz mam problem z funkcją wyświetl: #include <allegro.h>
const int szerokosc = 70; const int wysokosc = 50; const int krawedz = 10;
BITMAP *** plansza_bitmap; int ** plansza_int; BITMAP * kolko; BITMAP * krzyzyk; BITMAP * nic;
void allegro(); void inicjalizacja(); void wyswietl();
int main() { allegro(); inicjalizacja(); wyswietl(); readkey(); allegro_exit(); return 0; } END_OF_MAIN();
void allegro() { allegro_init(); install_keyboard(); set_color_depth( 8 ); set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0 ); set_palette( default_palette ); clear_to_color( screen, 0 ); }
void inicjalizacja() { kolko = load_bmp( "grafika\kolko.bmp", default_palette ); nic = load_bmp( "grafika\nic.bmp", default_palette ); krzyzyk = load_bmp( "grafika\krzyzyk.bmp", default_palette ); plansza_bitmap = new BITMAP **[ szerokosc ]; plansza_int = new int *[ szerokosc ]; for( int a = 0; a < szerokosc; a++ ) { plansza_bitmap[ a ] = new BITMAP *[ wysokosc ]; plansza_int[ a ] = new int[ wysokosc ]; } for( int a = 0; a < szerokosc; a++ ) { for( int b = 0; b < wysokosc; b++ ) { plansza_bitmap[ a ][ b ] = nic; plansza_int[ a ][ b ] = 0; } } }
void wyswietl() { for( int a = 0; a < szerokosc; a++ ) { for( int b = 0; b < wysokosc; b++ ) { blit( plansza_bitmap[ a ][ b ], screen, 0, 0, 50 + a * krawedz, 50 + b * krawedz, krawedz, krawedz ); } } }
Błędy: 40:18 C:\Users\Patryk\Documents\C++\projekty\allegro\kolko i krzyzyk\main.cpp [Warning] unknown escape sequence '\k'
42:20 C:\Users\Patryk\Documents\C++\projekty\allegro\kolko i krzyzyk\main.cpp [Warning] unknown escape sequence '\k'
//edit To był taki głupi błąd, że aż śmieszny <lol> kolko = load_bmp( "grafika/kolko.bmp", default_palette );
wystarczyło dać / zamiast tej drugiej kreski :P PS: Pietrzuch, przypomnij mi jak się formatowało post w kod z c++? |
|
pekfos |
» 2009-03-31 20:01:02 kolko = load_bmp( "grafika\kolko.bmp", default_palette ); zamień na kolko = load_bmp( "grafika/kolko.bmp", default_palette ); to przynajmniej warningów nie będzie:) |
|
steckel Temat założony przez niniejszego użytkownika |
» 2009-03-31 20:18:17 Wiem, warningi to mały pikuś, gorzej, że z pliku wtedy nie czytał :P |
|
DeBugger |
» 2009-03-31 20:49:23 [ code src="c++" ] [ / code ] |
|
« 1 » |