sebiq Opublikowano 4 Grudnia 2009 Udostępnij Opublikowano 4 Grudnia 2009 Witam! Ostatnio zainteresowało mnie programowanie C++. Czytałem kilka poradników ale w żadnym nie ma jak dodać grafikę itp ;). I tu wielka prośba do was: -Proszę o jakiś poradnik -Wytłumaczenie trudniejszych rzeczy -Jak zrobić choćby najprostszy program/grę Zrobiłem już kalkulator :D I trochę nie pojmuję tablic więc teraz wasza kolej :D Z góry thx :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 4 Grudnia 2009 Udostępnij Opublikowano 4 Grudnia 2009 widzisz, tu nie ma tak prosto jak w GMie - od każdego modułu (grafika, dźwięki, itp) potrzebujesz biblioteki która to obsłuży, musisz się zdecydować najlepiej na jakiś silnik który będzie miał to wszystko (lub większość) w sobie. Jedni biorą Allegro, inni SDL, ja ostatnio w sieci znalazłem przyjemny i prosty w użyciu silniczek - HGE, polecam sprawdzić, ma tutoriale (niestety po angielsku): http://hge.relishgames.com/ A co do wytłumaczenia trudniejszych rzeczy - pytaj, a z chęcią odpowiem :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Exigo Opublikowano 4 Grudnia 2009 Udostępnij Opublikowano 4 Grudnia 2009 Się wtrącę. Zawsze miałem problem z zainicjowaniem(?) owych modułów. - Może by tak jakiś... ekhm, poradnik? Wiem że gadam jak zielony, ale to na serio sprawia mi spory problem. (może dlatego że używam Code::Blocks?) ;X Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 4 Grudnia 2009 Udostępnij Opublikowano 4 Grudnia 2009 Co rozumiesz poprzez zainicjowanie? czy owe biblioteki sa poprawnie zainstalowane? jesli tak to chodzi o to ze funkcja inicjujaca nie wykonuje sie wlasciwie? wyrzuca jakies errory? zawsze moze byc wina braku zalinkowanych libow w linkerze. dobrze bylo by gdybys w miare mozliwosci opisal co robisz, to sie znajdzie przyczyne :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Exigo Opublikowano 4 Grudnia 2009 Udostępnij Opublikowano 4 Grudnia 2009 Hm. W zasadzie, za każdym razem problem polega na tym że blakuje jakichś plików. W zasadzie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 4 Grudnia 2009 Udostępnij Opublikowano 4 Grudnia 2009 jesli sa jakies includy i liby to zapewne trzeba je poprzenosic do odpowiednich folderow includes oraz libs. jak masz mozliwosc zapodaj log bledow jakie wywala, bez tego nie zdzialamy wiele. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Exigo Opublikowano 4 Grudnia 2009 Udostępnij Opublikowano 4 Grudnia 2009 Inklud jest, błąd jest... ;f File format not recognized! ld returned 1 exit status! (Hge.) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sebiq Opublikowano 5 Grudnia 2009 Autor Udostępnij Opublikowano 5 Grudnia 2009 Ja tez robię w code blocks :) jak wejdę na kompa to sprawdzę tą bibliotekę bo na razie leżę w łóżku i piszę z konsoli :P @Edit a ten silnik się jakoś dodaje Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZeroXbot Opublikowano 5 Grudnia 2009 Udostępnij Opublikowano 5 Grudnia 2009 Tu masz przykładowo (niestety po angielsku) jak się dodaje SDLa do niemal każdego środowiska: link Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sebiq Opublikowano 5 Grudnia 2009 Autor Udostępnij Opublikowano 5 Grudnia 2009 Dobra zainstalowałem sobie bibliotekę Allegro :) ale nie wiem czy w programie nie trzeba wpisać #include<allegro.h> i jeszcze jedno gdzie wklejać grafiki do jakiego folderu :)?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
qanaroo Opublikowano 6 Grudnia 2009 Udostępnij Opublikowano 6 Grudnia 2009 trzeba zainkludować, wszystko jest opisane, znajdź sobie przykład i zobacz jak to tam wygląda. Grafiki wrzucasz gdzie chcesz, w folderze z grą Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sebiq Opublikowano 6 Grudnia 2009 Autor Udostępnij Opublikowano 6 Grudnia 2009 Już sam doszedłem do tego :) ale thx lecz mam kolejny problem z buforem nie wczytuje mi go ;/ ale jeszcze pokombinuje jak pomożecie będzie szybciej :) oczywiście jest to prośba :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
qanaroo Opublikowano 6 Grudnia 2009 Udostępnij Opublikowano 6 Grudnia 2009 Po pierwsze pokaż kod jak co robisz, podaj log debuggera itp. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sebiq Opublikowano 6 Grudnia 2009 Autor Udostępnij Opublikowano 6 Grudnia 2009 hah udało sie z buforem rozdzielczość źle miałem teraz jest znowu błąd xD sprity trzeba jakoś przypisać sprita pod dany klawisz narazie mam tak: #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,640,480,0,0); install_timer(); install_int_ex(increment_speed, BPS_TO_TIMER(80)); BITMAP *bufor = NULL; BITMAP *ludek0 = NULL; BITMAP *ludek1 = NULL; BITMAP *ludek2 = NULL; BITMAP *ludek3 = 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("down.bmp",default_palette); ludek1 = load_bmp("up.bmp",default_palette); ludek2 = load_bmp("left.bmp",default_palette); ludek3 = load_bmp("right.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); } 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(); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maciej-01 Opublikowano 6 Grudnia 2009 Udostępnij Opublikowano 6 Grudnia 2009 proszę , zapodam ci link do kursów ^_^ Darmowe Kursy Allegro i C++ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sebiq Opublikowano 6 Grudnia 2009 Autor Udostępnij Opublikowano 6 Grudnia 2009 chodzilo mi o to zeby ktos pomogl lub poprawil Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pan123 Opublikowano 6 Grudnia 2009 Udostępnij Opublikowano 6 Grudnia 2009 człowieku najpierw naucz się chociaż do "klas " potem bierz się za biblie graficzną bo jak ty tylko przepisujesz kod to na dobre ci nie wyjdzie a po zatym wiele więcej w c++ niż w gml nie da sie zrobic w grafie 2D sam sie o tym przekonałem jedno i to samo tylko satysfakcja że gra zaprogramowana a nie wyklinana XD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 6 Grudnia 2009 Udostępnij Opublikowano 6 Grudnia 2009 po zatym wiele więcej w c++ niż w gml nie da sie zrobic w grafie 2D sam sie o tym przekonałem bullshit roku. Nie wiem z jakich bibliotek korzystałeś ale widać dość stare musiały być ;> Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maciej-01 Opublikowano 6 Grudnia 2009 Udostępnij Opublikowano 6 Grudnia 2009 Masz tu mały przykładzik na poruszanie się obiektu "ludzik" :sp_ike: : while( !key[KEY_ESC]) { if( key[KEY_LEFT]) ludek_x--; if( key[KEY_RIGHT]) ludek_x++; if( key[KEY_UP]) ludek_y--; if( key[KEY_DOWN]) ludek_y++; //clear_to_color(screen, makecol(10,10,10)); //rest(1); masked_blit( ludek, screen, 0,0, ludek_x, ludek_y, ludek->w, ludek->h); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sebiq Opublikowano 7 Grudnia 2009 Autor Udostępnij Opublikowano 7 Grudnia 2009 przecierz to juz mam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 7 Grudnia 2009 Udostępnij Opublikowano 7 Grudnia 2009 a zauwazyles to?: 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; } po co masz druga petle w petli glownej? na moje oko nie spelnia swojego zadania Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 7 Grudnia 2009 Udostępnij Opublikowano 7 Grudnia 2009 a zauwazyles to?: po co masz druga petle w petli glownej? na moje oko nie spelnia swojego zadania pętla while( speed > 0) jest potrzebna w allegro, jak dobrze pamiętam. kod wygląda mi na skopiowany z jakiegoś tutoriala poza tym. natomiast głupotą jest frame++; if( frame > 80) frame=0; wynika z tego, że ma się kręcić dookoła Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się