コード例 #1
0
ファイル: main.cpp プロジェクト: akrutsinger/Cards
int main(int argc, char *argv[])
{
	if( SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0 ){
		printf("Unable to initialize SDL: %s\n", SDL_GetError());
		exit(1);
	}
	atexit(SDL_Quit);

	screen = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, 32, SDL_HWSURFACE|SDL_HWPALETTE|SDL_DOUBLEBUF);
//	screen = SDL_SetVideoMode(800, 600, 32, SDL_SWSURFACE|SDL_HWPALETTE); //Slow


	if(screen == NULL)
	{
		printf("Unable to set 0x0 video: %s\n", SDL_GetError());
		exit(1);
	}

	Initialize();
	NewGame();
	Scorpion.DrawStaticScene();

	SDL_Event event;
	int done = 0;

	while(done == 0)
	{
		while(SDL_PollEvent(&event))
		{
			switch(event.type)
			{
				case SDL_QUIT:
     				return 0;

				case SDL_KEYDOWN:
     				if(event.key.keysym.sym == SDLK_ESCAPE) { done = 1; }
					HandleKeyDownEvent(event);
         			break;

				case SDL_MOUSEBUTTONDOWN:
					HandleMouseDownEvent(event);
  					break;

				case SDL_MOUSEMOTION:
					HandleMouseMoveEvent(event);
					break;

				case SDL_MOUSEBUTTONUP:
					HandleMouseUpEvent(event);
 					break;
			}
		}
	}

// perform cleaning up in here

	freeFont(font1);
	freeFont(font2);
	return 0;
}
コード例 #2
0
ファイル: main.cpp プロジェクト: akrutsinger/Cards
void HandleMouseUpEvent(SDL_Event &event)
{
	if(startdrag){
		startdrag = false;
		Scorpion.DoDrop();
		SDL_WM_GrabInput(SDL_GRAB_OFF);
	}
	if(Scorpion[0].Empty()){
		Scorpion[0].SetSymbol(1);
		Scorpion.DrawStaticScene();
	}
	//Victory: When we have 4 stacks from King to Ace of the same suit
	int ordered_stacks = 0;
	for(int i = 1; i < 8; i++){
		if(Scorpion[i].SuitBuilt()){
			ordered_stacks++;
		}
		if(ordered_stacks == 4){
			AnimateCards();
			NewGame();
			Scorpion.DrawStaticScene();
		}
	}
}
コード例 #3
0
ファイル: main.cpp プロジェクト: akrutsinger/Cards
void HandleKeyDownEvent(SDL_Event &event)
{
	if(event.key.keysym.sym == SDLK_n)		{ NewGame(); Scorpion.DrawStaticScene(); }
	if(event.key.keysym.sym == SDLK_a)		{ AnimateCards(); }; // Test animation
	if(event.key.keysym.sym == SDLK_r)		{ Scorpion.DrawStaticScene(); }; // Refresh
}