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

[SDL] Gra w statki, wstawianie podstawowych kształtów.

Ostatnio zmodyfikowano 2013-01-13 22:36
Autor Wiadomość
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.
P-73734
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.
P-73753
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ę.
P-73756
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 1.2SDL_BlitSurface
P-73762
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:

C/C++
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?
P-73767
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ą.
P-73768
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! 

C/C++
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 );
P-73782
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
P-73877
« 1 » 2
  Strona 1 z 2 Następna strona