fedoramaster Temat założony przez niniejszego użytkownika |
[SDL] Gra w statki, wstawianie podstawowych kształtów. » 2013-01-12 21:05:53 Witam was serdecznie. Dopiero "poznałem" SDL, a potrzebuję zrobić prostą grafikę do gry w statki. Chodzi mi o funkcję, która by wstawiała np. żółty kwadrat w miejsce trafionego statku. Jakąś funkcję kopiującą kształty, by pętlą rozmieścić je równomiernie(mapa) i potem według zaistniałych trafień/pudeł także rysować jakieś kształty.
Jeśli jesteście w stanie mnie podszkolić lub wysłać do innego tematu/tutoriala będę wysoce wdzięczny. |
|
DejaVu |
» 2013-01-12 23:04:27 Zamiast rysować kształty, przygotuj sobie obrazki ze statkami, efektami trafienia itp. i następnie rysuj je na scenie. Ręcznie się nie tworzy żadnych kształtów w grach. |
|
fedoramaster Temat założony przez niniejszego użytkownika |
» 2013-01-12 23:25:11 Na taki właśnie wpadłem pomysł i kombinuję z Blitowaniem załadowanej bitmapy i podwójną pętlą for.
Poproszę o potwierdzenie, że to jest poprawna metoda lub nakierowanie na inną funkcję. |
|
DejaVu |
» 2013-01-12 23:54:03 Z kosmosu biblioteki SDL nie wziąłeś, więc zakładam, że uczysz się z jakiegoś tutoriala i tam jest opisane w jaki sposób rysować obrazki. SDL_BlitSurface |
|
fedoramaster Temat założony przez niniejszego użytkownika |
» 2013-01-13 00:36:56 Problem w tym, że projekt się zawiesza przy takiej funkcji main: SDL_Init( SDL_INIT_EVERYTHING ); ekran = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE ); cos = SDL_LoadBMP( "square.bmp" ); SDL_WM_SetCaption( "Kalafort", NULL ); SDL_Rect destRect;
for( int i = 20; i < 103; i + 22 ) { destRect.w = cos->w; destRect.h = cos->h; destRect.y = 20; destRect.x = i; SDL_BlitSurface( cos, NULL, ekran, & destRect ); } SDL_Flip( ekran ); Nie wydaje mi się, żebym popełniał jakiś prosty błąd. Co o tym myślicie? |
|
DejaVu |
» 2013-01-13 01:31:54 Może tekstura się nie załadowała? Jeżeli kod z tutoriala działał to zapewne to jest przyczyną. |
|
fedoramaster Temat założony przez niniejszego użytkownika |
» 2013-01-13 12:35:09 Koniec końców udało mi się zrobić planszę. Zmieniłem pętlę. Tutaj daję poprawny kod rysujący planszę 10 x 10. Przede mną jeszcze trochę pracy. Dzięki za pomoc! SDL_Init( SDL_INIT_EVERYTHING ); ekran = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE ); cos = SDL_LoadBMP( "square.bmp" ); SDL_WM_SetCaption( "Kalafort", NULL ); SDL_Rect destRect; destRect.w = cos->w; destRect.h = cos->h; int i = 20, j = 20;
while( j <= 238 ) { destRect.y = j; while( i <= 238 ) { destRect.x = i; SDL_BlitSurface( cos, NULL, ekran, & destRect ); i = i + 24; } i = 20; j = j + 24; } SDL_Flip( ekran ); |
|
fedoramaster Temat założony przez niniejszego użytkownika |
» 2013-01-13 22:32:58 Napotkałem taki błąd przy kompilacji projektu. Rozumiecie coś z tego?
http://i.imgur.com/wZAFU.png |
|
« 1 » 2 |