Wrap text
|
|
/* Simple program: Create a blank window, wait for keypress, quit.
Please see the SDL documentation for details on using the SDL API:
/Developer/Documentation/SDL/docs.html
*/
#define KEY_A 0x1
#define KEY_1 0x2
#define MOUSEMOVE 0x4
#define MOUSEPRESS 0x8
#include
#include
#include
#include
#include "SDL.h"
int main(int argc, char *argv[])
{
Uint32 initflags = SDL_INIT_VIDEO; /* See documentation for details */
SDL_Surface *screen;
Uint8 video_bpp = 0;
Uint32 videoflags = SDL_SWSURFACE;
int done;
SDL_Event event;
/* Initialize the SDL library */
if ( SDL_Init(initflags) < 0 ) {
fprintf(stderr, "Couldn't initialize SDL: %s\n",
SDL_GetError());
exit(1);
}
/* Set 640x480 video mode */
screen=SDL_SetVideoMode(640,480, video_bpp, videoflags);
if (screen == NULL) {
fprintf(stderr, "Couldn't set 640x480x%d video mode: %s\n",
video_bpp, SDL_GetError());
SDL_Quit();
exit(2);
}
Uint32 keycombo = 0;
Uint32 keymatch = 0;
keymatch |= KEY_A;
keymatch |= KEY_1;
done = 0;
while ( !done )
{
/* Check for events */
while ( SDL_PollEvent(&event) )
{
switch (event.type)
{
case SDL_MOUSEMOTION:
keycombo |= MOUSEMOVE;
break;
case SDL_MOUSEBUTTONDOWN:
keycombo |= MOUSEPRESS;
break;
case SDL_KEYDOWN:
switch( event.key.keysym.sym )
{
case SDLK_a:
keycombo |= KEY_A;
break;
case SDLK_1:
keycombo |= KEY_1;
break;
default: break;
}
break;
/* Any keypress quits the app... */
case SDL_QUIT:
done = 1;
break;
default:
break;
}
}
// printf("%x\n", (((const Uint32)keycombo ^ (const Uint32)keymatch)));
/* if(keycombo)
{
printf("if(%x == %x)\n", keycombo, keymatch);
if(keycombo & keymatch)
{
printf("YAY\n");
}
}
*/
/*int i;
for(i = 1; i < 16; i*= 2)
{
if(keycombo & i)
{
if(keymatch & i)
{
printf("found ui event %d\n", i >> 1);
}
}
}*/
// if(!(keycombo ^ (KEY_A | KEY_1))) printf("A + 1\n");
// if(keycombo & KEY_A) printf("A key was detected\n");
// if(keycombo & KEY_1) printf("1 key was detected\n");
// if(keycombo & MOUSEMOVE) printf("Mousemove was detected\n");
// if(keycombo & MOUSEPRESS) printf("Mousepress was detected\n");
//if(keycombo )
//{
if((keycombo & keymatch) != 0) printf("we has win!\n");
//}
keycombo = 0;
keymatch = 0;
}
/* Clean up the SDL library */
SDL_Quit();
return(0);
}
|