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

[SDL] Czyszczenie ekranu/okna

Ostatnio zmodyfikowano 2013-01-02 17:49
Autor Wiadomość
JategoNwM
Temat założony przez niniejszego użytkownika
[SDL] Czyszczenie ekranu/okna
» 2013-01-01 13:08:40
Witam! Czy istnieje jakiś kod, który czyścił by ekran, podczas przejścia z menu do gry.
P-72585
Mike148
» 2013-01-01 13:42:47
P-72586
JategoNwM
Temat założony przez niniejszego użytkownika
» 2013-01-01 14:22:56
int SDL_FillRect(SDL_Surface *dst, SDL_Rect *dstrect, Uint32 color);

A może mi ktoś wyjaśnić co wpisujemy w nawiasie?
P-72591
Mike148
» 2013-01-01 14:43:34
C/C++
int SDL_FillRect( SDL_Surface * dst, // Powierzchnia, którą czyścisz, w przypadku całego ekranu dajesz powierzchnię ekranu
const SDL_Rect * rect, // Obszar do wyczyszczenia
Uint32 color ) // Kolor

To powinno pomóc :
http://wiki.libsdl.org/moin.cgi/SDL_FillRect
http://stackoverflow.com/questions/11403597/creating-rectangle-with-sdl-fillrect
https://sites.google.com/site/sdlgamer/beginner/lesson-8
P-72592
JategoNwM
Temat założony przez niniejszego użytkownika
» 2013-01-01 16:17:08
Jak w drugim argumencie wpisze NULL to program mi się nie kompiluje
P-72612
Mike148
» 2013-01-01 17:11:22
Mnie z NULL'em wszystko działa. Popatrz na ten przykład.
C/C++
#include <SDL/SDL.h>
#include <iostream>

bool Event();

int r, g, b;

int main( int argc, char * argv[] )
{
    SDL_Init( SDL_INIT_EVERYTHING );
   
    r = 255;
    g = 200;
    b = 255;
   
    SDL_Surface * screen;
    screen = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE );
    SDL_Flip( screen );
   
    SDL_Surface * sprite = SDL_CreateRGBSurface( SDL_SWSURFACE, 100, 100, screen->format->BitsPerPixel,
    screen->format->Rmask, screen->format->Gmask, screen->format->Bmask, screen->format->Amask );
    SDL_FillRect( sprite, NULL, SDL_MapRGB( sprite->format, 255, 255, 0 ) );
    SDL_Rect rect;
    rect.x = 270;
    rect.y = 190;
    rect.w = 100;
    rect.h = 100;
   
    while( Event() )
    {
        SDL_FillRect( screen, NULL, SDL_MapRGB( screen->format, r, g, b ) ); // CLEAR
       
        //RESZTA KODU GRY
        SDL_BlitSurface( sprite, NULL, screen, & rect ); // Rysujemy sobie jakiegoś sprajta
       
        SDL_Flip( screen ); // SHOW
    }
   
    SDL_Quit();
    return 0;
}

bool Event()
{
    SDL_Event event;
    while( SDL_PollEvent( & event ) )
    {
        if( event.type == SDL_QUIT )
        {
            return false;
            break;
        }
    }
   
    return true;
}
P-72625
RazzorFlame
» 2013-01-02 15:09:45
Mike - twój kod jest zły. Po kiego w Event() deklarujesz strukture odbierającą eventy?
P-72713
Mike148
» 2013-01-02 16:23:43
Mike - twój kod jest zły. Po kiego w Event() deklarujesz strukture odbierającą eventy?
A po kiego nie ? Wiesz dobrze, że można to zrobić na kilka sposobów, które dadzą identyczny efekt. Wszystko zależy od widzi mi się osoby tworzącej to. Po za tym nie rozkazuje mu tak pisać aplikację, a to jest tylko przykład, w którym chciałem pokazać coś innego, a nie jak obsługiwać eventy ;)
P-72720
« 1 » 2
  Strona 1 z 2 Następna strona