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

SDL Problem z ludkiem i tłem

Ostatnio zmodyfikowano 2009-11-28 15:03
Autor Wiadomość
malan
» 2009-11-27 23:17:00
Znalazłem inne rozwiązanie (niż Pan Piotr), które w moim "programie" działa, tzn. czerwony kwadracik "chodzący" po ekranie nie zamalowuje tła:
http://sdl.beuc.net/sdl.wiki/SDL_FillRect, u Ciebie wyglądałoby to mniej więcej tak:
SDL_FillRect(ekran,NULL,0);
P-11825
Bartaz
Temat założony przez niniejszego użytkownika
...
» 2009-11-28 10:24:59
Dzięki działa.
Temat do zamknięcia.
P-11835
Bartaz
Temat założony przez niniejszego użytkownika
Tekst
» 2009-11-28 10:38:50
Aha mam jeszcze jedna pytanie jak w SDL wyświetlic teks bo patrzałem na innej stronie ale nie działa mi ta funkca bo musi byc dodana inna biblioteka chyba.
P-11839
Proxym
» 2009-11-28 10:40:30
http://lazyfoo.net/SDL_tutorials/lesson05/index.php

Powinno wystarczyć ;)
P-11840
Bartaz
Temat założony przez niniejszego użytkownika
...
» 2009-11-28 11:00:08
Stronka fajna ale szkoda ,żę po Angielsku ale zawsze cos^^.
Malan ta funkca co mi podałes :SDL_FillRect(ekran,NULL,0);   ,działa ale tylko żeby
nie było zamalowywany ekran a z tłem to już gorzej,próbowałem dopisać tu  ("tu",NULL,0); coś innego
ale wtedy albo się wyświetla sam ekran albo zamiast ludka to czarny prostokąt.
P-11842
Bartaz
Temat założony przez niniejszego użytkownika
Znowu problem :/
» 2009-11-28 14:20:37
A więc tak mam taki problem(znowu)
Chciałem napisać coś podobnego do Ponga
Te dwie takie "deski" miały się wyświetlać na ekranie(nie na tle)
I tu wszystki jest dobrze ,tylko gdy próbuje zrobić sterowanie do drugiej
"deski" to mi wywala taki błąd:
71 C:\Dev-Cpp\main.cpp 'struct SDL_Rect' has no member named 'f'
72 C:\Dev-Cpp\main.cpp 'struct SDL_Rect' has no member named 'g'
A tu kod:
C/C++
#include <SDL/SDL.h>

int x = 50;
int y = 410;
int f;
int g;
SDL_Surface * ekran = NULL;
SDL_Surface * ludek = NULL;
SDL_Surface * tlo = NULL;

int SDL_FillRect( SDL_Surface * dst, SDL_Rect * dstrect, Uint32 color );
SDL_Event zdarzenie;
SDL_Rect LudekDestination;
SDL_Rect TloDestination;

Uint8 * keystate = SDL_GetKeyState( NULL );

bool wyjscie = false;
int main( int argc, char * args[] )
{
    ekran = SDL_SetVideoMode( 900, 700, 32, SDL_SWSURFACE );
   
    ludek = SDL_LoadBMP( "ludek.bmp" );
    tlo = SDL_LoadBMP( "tlo.bmp" );
   
   
   
   
   
   
   
   
    while( !wyjscie )
    {
        while( SDL_PollEvent( & zdarzenie ) )
        {
            if( zdarzenie.type == SDL_QUIT )
            {
               
                wyjscie = true;
            }
        }
        if( keystate[ SDLK_RIGHT ] ) ////sterowanie////
        {
           
           
           
           
           
            x = x + 7;
        }
        if( keystate[ SDLK_LEFT ] )
        {
           
            x = x - 7;
        }
        if( keystate[ SDLK_UP ] )
        {
            y = y - 7;
        }
        if( keystate[ SDLK_DOWN ] )
        {
            y = y + 7;
        }
        if( keystate[ SDLK_f ] )
        {
            f = f + 3;
        }
        LudekDestination.x = x;
        LudekDestination.y = y;
        TloDestination.f = f; /////////O to mi błąd wywala.
        TloDestination.g = g; ///////"////////
        SDL_FillRect( ekran, NULL, 0 );
        SDL_BlitSurface( tlo, NULL, ekran, & TloDestination );
        SDL_BlitSurface( ludek, NULL, ekran, & LudekDestination );
       
        SDL_Flip( ekran );
       
    }
    SDL_FreeSurface( ludek );
    SDL_FreeSurface( tlo );
    SDL_Quit(); / koniec /////
    return 0;
}
Ludek i Tlo to sa "deski". 

P-11864
malan
» 2009-11-28 15:02:31
Malan ta funkca co mi podałes: SDL_FillRect(ekran,NULL,0);,działa ale tylko żeby nie było zamalowywany ekran (...)
Ups... ;p, masz racje - nie sprawdzałem tego wczoraj pod tym kontem, sory ;).

Patrząc na linijkę wyżej w Twoim kodzie to zrobiłby to tak:
C/C++
TloDestination.x = f;
TloDestination.y = g;
P-11866
DejaVu
» 2009-11-28 15:03:26
A więc załóż nowy temat, a ten zamknij jeśli został rozwiązany problem opisany w pierwszym poście. Dbaj o jakiś porządek ;)
P-11867
1 « 2 »
Poprzednia strona Strona 2 z 2