DeBugger Temat założony przez niniejszego użytkownika |
[Allegro] Ramka. » 2008-08-06 12:30:16 Ostatnio uporałem się z allegro. Ale mam teraz problem. Chciałbym żeby "ramka" wyświetlała się w na bitmapie o nazwie "menu". Napisałem otóż taki kod: Start.cpp: #include <allegro.h> #include "functions.h" int main() { allegro_init(); install_keyboard(); set_color_depth( 32 ); set_gfx_mode( GFX_AUTODETECT, 800, 600, 0, 0 ); set_palette( default_palette ); clear_to_color( screen, 48 ); BITMAP * start; BITMAP * menu; start = load_bitmap( "start.bmp", 0 ); menu = load_bitmap( "menu.bmp", 0 ); draw_sprite( screen, start, 0, 0 ); readkey(); destroy_bitmap( start ); void Menu(); draw_sprite( screen, menu, 0, 0 ); readkey(); allegro_exit(); return 0; } END_OF_MAIN();
functions.h: #ifdef functions_H #define functions_H #include "start.cpp" #include <string> #include <allegro.h> using namespace std;
void Menu(); { int menu_pos = 1; BITMAP * ramka ramka = load_bitmap( "ramka.tga", 0 ); draw_sprite( menu, ramka, 80, 80 ); } #endif
|
|
DejaVu |
» 2008-08-06 12:43:40 Tak na oko wydaje mi się, że linijka: draw_sprite( menu, ramka, 80, 80 ); powinna wyglądać tak: draw_sprite( menu, ramka, 0, 0 ); |
|
DeBugger Temat założony przez niniejszego użytkownika |
» 2008-08-06 18:57:52 Nie, to nie oto chodzi. Funkcja chyba źle była napisana. Bo jak przekopiowałem to z "ramką" do start.cpp to działało. Proszę przyjrzeć się jeszcze raz funkcji, bo chyba coś źle: #ifdef functions_H #define functions_H #include "start.cpp" #include <string> #include <allegro.h> using namespace std;
void Menu(); { BITMAP * ramka ramka = load_bitmap( "ramka.bmp", 0 ); draw_sprite( menu, ramka, 0, 0 ); } #endif
|
|
DejaVu |
» 2008-08-06 19:01:39 [tutorial]Pierwsza linijka powinna wyglądać #if ndef[/tutorial] /edit: void Menu(); Za nawiasami średnika również nie może być |
|
DeBugger Temat założony przez niniejszego użytkownika |
» 2008-08-06 19:56:13 Już nic nie wiem. Poprawiłem błędy ale dalej trzyma. http://www.speedyshare.com/468521631.htmlLink. Proszę sprawdzić. Naprawiłem kilka błędów (m.in. "ramka" powinna się pojawiać w "screen", ale to nic nie daje, a tak właśnie działało w start.cpp). //edit Jeśli coś Pan zauważy, proszę poprawić i wysłać na serwer. //edit2 Np. na speedyshare.com. |
|
DejaVu |
» 2008-08-06 20:03:04 No dobra... to za 10min zapewne dam Ci rozwiązanie. /edit: #include <allegro.h> #include "functions.h" int main() { int menu_pos = 1; allegro_init(); install_keyboard(); set_color_depth( 32 ); set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0 ); set_palette( default_palette ); clear_to_color( screen, 48 ); BITMAP * start; BITMAP * menu; start = load_bitmap( "start.bmp", 0 ); menu = load_bitmap( "menu.bmp", 0 ); draw_sprite( screen, start, 0, 0 ); destroy_bitmap( start ); draw_sprite( screen, menu, 0, 0 ); Menu(); readkey(); allegro_exit(); return 0; } END_OF_MAIN(); Drugi plik: #ifndef functions_H #define functions_H #include <string> #include <allegro.h> using namespace std;
void Menu() { BITMAP * ramka; ramka = load_bitmap( "ramka.bmp", 0 ); draw_sprite( screen, ramka, 0, 0 ); } #endif
|
|
DeBugger Temat założony przez niniejszego użytkownika |
Dziękuje Panu! » 2008-08-06 20:26:43 Dziękuję panu!!! Wszystko działa jak ulał! Teraz nie mam czasu zbytnio, ale trochę później zobaczę co było w kodzie nie tak. Jeszcze raz dziękuję! |
|
« 1 » |