[SDL] Feld in einem Grid makieren

devnetik

Enthusiast
Thread Starter
Mitglied seit
30.12.2008
Beiträge
79
Ich hab ein wenig wieder mit SDL programmiert und hab ein kleines Grid geschrieben.
Nun wollte ich, wenn man mit der Maus über die Felder geht, das dieses Feld heller wird.
Einwenig wie bei einem alten Strategiespiel.

Code:
#include <SDL/SDL.h>
using namespace std;

SDL_Surface *screen = NULL;
SDL_Event event;
const unsigned short int wscreen = 1024,
hscreen = 768,
bpp = 32;

int main( int argc, char* args[] )
{
bool done = false;
SDL_Rect cube={0,0,30,30};
if( SDL_Init( SDL_INIT_VIDEO ) == -1)return 1;

screen = SDL_SetVideoMode( wscreen,hscreen,bpp,SDL_SWSURFACE );
if( screen == NULL )return 1;

SDL_WM_SetCaption("SDL Hello World",NULL);
for(int x = 0;x < wscreen ;x++)
{
for(int y = 0;y < hscreen ;y++)
{
cube.x = x;
cube.y = y;
if(cube.x%32==0 && cube.y%32==0)
SDL_FillRect(screen, &cube, SDL_MapRGB(screen->format, x+y, 0, 0));
}
}

while(!done)
{
while(SDL_PollEvent(&event))
{
switch(event.type)
{
case SDL_QUIT:
done = true;
break;
case SDL_MOUSEMOTION:
cube.x = event.motion.x, cube.y = event.motion.y;
SDL_FillRect(screen, &cube, SDL_MapRGB(screen->format, 255, 0, 0));
break;
}
}
SDL_UpdateRect(screen, 0, 0, 0, 0);
}

SDL_FreeSurface(screen);
SDL_Quit();
return 0;
}

Ich hoffer ihr versteht was ich meine. Ansonsten einfach sagen, ich versuch mich dann besser auszudrücken. :d

Liebe grüße, michi
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
nein... aber hier im forum scheint die formatierung nicht ordentlich zu funktionieren... hab den codetag aufjedenfall drin ;-)

hoffe ich hab nichts falsch gemacht
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh