Archief - SDL beginner vraag

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

darkownage

Legacy Member
In de klas moeten we een pixel laten bewegen als er op de rechter pijl toets word geduwd moet het 1 pixel opschuiven naar rechts en het zelfde bij links.

hoe pak ik dit het beste aan ?
we hebben nog niets gezien van sdl en het is gwn een uitbreiding maar toch wil ik het weten

grtz

killgore

Legacy Member
ehm, ik zou zeggen: probeer enkele standaard sdl tutorials (ik weet niet meer wat recente zijn om eerlijk te zijn, maar op Simple DirectMedia Layer zal je zeker je gading vinden). Daar zal je zeer snel de basis leren (venster maken, tekenen, events opvangen).

Voor de rest is het gewoon een functie zoeken om pixels te tekenen en altijd een pixel te hertekenen (komt er op neer dat je oude pixel wist en nieuwe ergens anders tekent na keyaanslag).

Tip ivm wissen: je kan ofwel oude pixel gaan hertekenen met bg-kleur ofwel hele scherm wissen met de bg-kleur. In dit simpel geval zou ik niet weten wat het efficiëntste is, maar doorgaans is scherm wissen en herbeginnen efficiënter (en eenvoudiger :p).

joyrider

Legacy Member
SDL heeft standaard geen functies om pixels te manipuleren, maar je kan deze zelf aanmaken door gebruik te maken van "surface->pixels" pointer. je gaat wel met enkele dingen rekening moeten houden zoals onder andere Bpp en de pitch.

hier vind je bvb een putpixel en getpixel functie (helemaal onderaan):
http://www-ensps.u-strasbg.fr/ensps/files/Projets_de_Maths/SDL/html/guidevideo.html

en op deze site vind je een klein beetje uitleg over wat pitch juist is (de site heeft ook uitleg over hoe je sdl kan beginnen te gebruiken maw hoe je de compilers en IDE instelt, persoonlijk gebruik ik mingw32 in combinatie met code::blocks maar er zijn andere opties)
www.iki.fi/sol - Tutorials - Graphics / Game Programming

Opletten wel als je gebruik maakt van die functies moet je uw surface locken en unlocken !!! dit doe je gewoon via SDL_LockSurface(uwsurface) en SDL_UnlockSurface(uwsurface).
Het locken en unlocken van de surfaces staat niet in die putpixel en getpixel functies voor een reden namelijk stel je voor dat je een loop hebt waar je 1000 pixels op een random locatie zet. als je het locken en unlocken afhandelt in die functies dan is dit niet performant daar je voor elke pixel die je gaat wijzigen eerst de surface locked en nadien terug unlocked, alles zal dan veel trager gaan. je moet dus voor je de loop begint uw surface locken en nadat de loop gedaan is uw surface unlocken.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan