Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Simple SDL usage.

Uploader:Mitgliedpsygate
Datum/Zeit:04.04.2010 22:51:10

#include "SDL\SDL.bi"
#include "SDL\SDL_gfx_primitives.bi"

'Pointer auf den Screen-Puffer
'Surfaces sind das A und O von SDL
dim shared video as SDL_Surface ptr

'Variable um Events abzufangen (Tastatureingaben, Tastenanschläge usw)
dim event as SDL_Event

'Initialisiere SDL, wenn das nicht geht, brich ab und beende das Programm
if SDL_Init(SDL_INIT_VIDEO) <> 0 then
    print "Fehler: SDL konnte nicht initialisiert werden."
    end 1
end if

''Initialisieren der Bildschirmausgabe.
''Ein einfaches Fenster, Vollbild ist zu groß.
''Sollte man Vollbild wollen, einfach "or SDL_FULLSCREEN" anhängen.
''SDL_HWSURFACE heißt, dass die Grafik im Videoram erzeugt wird.
''SDL_SWSURFACE wäre dann einfach ram.
''SDL_DOUBLEBUF erzeugt zwei Pages, um flickering zu verhindern.

video = SDL_SetVideoMode(640,480,24, SDL_HWSURFACE or SDL_DOUBLEBUF)

'Checken ob euch wirklich der VideoMode erzeugt wurde
if video = NULL then
    print "Fehler. SDL konnte den VideoMode nicht aktivieren."
    end 2
end if

''Ein Bild wie einen Avatar könnte man nun einfach mit
'IMG_Load laden.
''Code dafür wäre:
'dim avatar as SDL_SURFACE ptr
'avatar = IMG_load(avatar.png)
''Gezeichnet kann das Ganze dann mit SDL_BlitSurface(start,startkoordinaten,Ziel, Zielkoordinaten) werden.
'SDL_BlitSurface(avatar,NULL,video,NULL)
''Und angezeigt wird das Ganze letzendlich mit
'SDL_Flip(video)
''und wenn man das Bild nicht mehr braucht, einfach mit
'SDL_FreeSurface(avatar)
''den Speicher Freigeben.

'Speichere Events in unserer event Variablen ab.
while 1
    SDL_PollEvent(@event)
    select case event.type
        case SDL_KEYDOWN:
            end
    end select

    'Etwas moderne Kunst mit Linien erzeugen:
    lineRGBA(video,int(rnd*640),int(rnd*480),int(rnd*640),int(rnd*480),int(rnd*256),int(rnd*256),int(rnd*256),255)
    SDL_Flip(video)

wend

'SDL beenden.
SDL_QUIT()