bool tPlayState::Init(tGameEngine* pGame)
{
    bool success = false;
    // Only create the game objects if the init is successful.
    if(LoadMedia(pGame) && LoadFont(pGame))
    {
        CreateGameObjects();
        success = true;
    }

    return success;
}
Exemple #2
0
//=============================================================================
int main(int argc, char *argv[])
{
	printf("INFO: Monster Outrage v %d\n", VERSION);

	try
	{
		InitSDL();
		LoadMedia();
		InitGame();

		bool quit = false;
		uint ticks = SDL_GetTicks();

		while(!quit)
		{
			// handle events
			SDL_Event e;
			while(SDL_PollEvent(&e) != 0)
			{
				if(e.type == SDL_QUIT)
					quit = true;
				else if(e.type == SDL_KEYDOWN)
				{
					if(e.key.state == SDL_PRESSED)
						ProcessKey(e.key.keysym.scancode, true);
				}
				else if(e.type == SDL_KEYUP)
				{
					if(e.key.state == SDL_RELEASED)
						ProcessKey(e.key.keysym.scancode, false);
				}
				else if(e.type == SDL_MOUSEMOTION || e.type == SDL_MOUSEBUTTONDOWN || e.type == SDL_MOUSEBUTTONUP)
				{
					SDL_GetMouseState(&cursor_pos.x, &cursor_pos.y);
					if(e.type == SDL_MOUSEBUTTONDOWN)
					{
						if(e.button.state == SDL_PRESSED && e.button.button < MAX_BUTTON)
							ProcessButton(e.button.button, true);
					}
					else if(e.type == SDL_MOUSEBUTTONUP)
					{
						if(e.button.state == SDL_RELEASED && e.button.button < MAX_BUTTON)
							ProcessButton(e.button.button, false);
					}
				}
			}

			// calculate dt
			uint new_ticks = SDL_GetTicks();
			float dt = float(new_ticks - ticks)/1000.f;
			ticks = new_ticks;

			Draw();
			Update(dt);
			UpdateInput();
		}

		CleanGame();
		CleanMedia();
		CleanSDL();
	}
	catch(cstring err)
	{
		printf("%s\nERROR: Read error and press any key to exit.\n", err);
		_getch();
		return 1;
	}

	return 0;
}
int main(int argc, char* args[])
{
	if (!Init())
	{
		printf("Failed to initialize!\n");
	}
	else
	{
		if (!LoadMedia())
		{
			printf("Failed to load media!\n");
		}
		else
		{
			srand(time(NULL));

			Game game(4, false);
			std::string guess = "0123";
			Texture currentGuessTexture;
			int guessPos = 0;
			int bulls = 0;
			int cows = 0;
			const int MIN_POS = 0;
			const int MAX_POS = 3;

			bool quit = false;

			bool refresh = true;
			bool guessChecked = true;

			SDL_Event e;
			SDL_Rect bull = { 0, 0, BOVINE_IMAGE_DIMENSION, BOVINE_IMAGE_DIMENSION };
			SDL_Rect cow = { BOVINE_IMAGE_DIMENSION, 0, BOVINE_IMAGE_DIMENSION, BOVINE_IMAGE_DIMENSION };
			SDL_Rect arrow = { 0, BOVINE_IMAGE_DIMENSION, ARROW_DIMENSION, ARROW_DIMENSION };

			SDL_Color textColor = { 0, 0, 0 };

			int bovineImgPosX = ((SCREEN_WIDTH / 2) - (BOVINE_IMAGE_DIMENSION + digitsTextTextures[0].getWidth())) / 2;
			int bovineImgPosY = ((SCREEN_HEIGHT / 2) - BOVINE_IMAGE_DIMENSION) / 2;
			int bovineCountPosY = ((SCREEN_HEIGHT / 2) - DIGITS_TEXT_HEIGHT) / 2;
			int inputGuessPosX = 0;
			int inputGuessPosY = ((SCREEN_HEIGHT / 2) - DIGITS_TEXT_HEIGHT) / 2;

			while (!quit)
			{
				while (SDL_PollEvent(&e) != 0)
				{
					if (e.type == SDL_QUIT)
					{
						quit = true;
					}

					if (e.type == SDL_KEYDOWN)
					{
						switch (e.key.keysym.sym)
						{
						case SDLK_LEFT:
							guessPos = (--guessPos < MIN_POS) ? MAX_POS : guessPos;
							refresh = true;
							break;

						case SDLK_RIGHT:
							guessPos = (++guessPos > MAX_POS) ? MIN_POS : guessPos;
							refresh = true;
							break;

						case SDLK_0:
							guess[guessPos] = '0';
							refresh = true;
							break;

						case SDLK_1:
							guess[guessPos] = '1';
							refresh = true;
							break;

						case SDLK_2:
							guess[guessPos] = '2';
							refresh = true;
							break;

						case SDLK_3:
							guess[guessPos] = '3';
							refresh = true;
							break;

						case SDLK_4:
							guess[guessPos] = '4';
							refresh = true;
							break;

						case SDLK_5:
							guess[guessPos] = '5';
							refresh = true;
							break;

						case SDLK_6:
							guess[guessPos] = '6';
							refresh = true;
							break;

						case SDLK_7:
							guess[guessPos] = '7';
							refresh = true;
							break;

						case SDLK_8:
							guess[guessPos] = '8';
							refresh = true;
							break;

						case SDLK_9:
							guess[guessPos] = '9';
							refresh = true;
							break;

						case SDLK_RETURN:
							guessPos = 0;
							game.CountBovine(guess, bulls, cows);
							guessChecked = true;
							refresh = true;
							break;
						}
					}

					if (refresh)
					{
						refresh = false;

						SDL_RenderClear(gRenderer);

						currentGuessTexture.LoadFromRenderedText(guess, textColor);
						inputGuessPosX = (SCREEN_WIDTH - currentGuessTexture.getWidth()) / 2;

						SDL_RenderSetViewport(gRenderer, &viewports[BULLS_VIEWPORT]);
						bullsAndCowsTexture.Render(bovineImgPosX, bovineImgPosY, &bull);
						digitsTextTextures[bulls].Render(bovineImgPosX + BOVINE_IMAGE_DIMENSION, bovineCountPosY);

						SDL_RenderSetViewport(gRenderer, &viewports[COWS_VIEWPORT]);
						bullsAndCowsTexture.Render(bovineImgPosX, bovineImgPosY, &cow);
						digitsTextTextures[cows].Render(bovineImgPosX + BOVINE_IMAGE_DIMENSION, bovineCountPosY);

						SDL_RenderSetViewport(gRenderer, &viewports[INPUT_VIEWPORT]);
						currentGuessTexture.Render(inputGuessPosX, inputGuessPosY);

						int offset = inputGuessPosX;
						for (int i = 0; i < guessPos; ++i)
						{
							offset = offset + digitsTextTextures[guess[i] - '0'].getWidth();
						}
						offset = offset + digitsTextTextures[guess[guessPos] - '0'].getWidth() / 2 - ARROW_DIMENSION / 2;

						bullsAndCowsTexture.Render(offset, inputGuessPosY - ARROW_DIMENSION, &arrow);

						if (guessChecked)
						{
							guessChecked = false;
						}

						SDL_RenderPresent(gRenderer);
					}
				}
			}
		}
	}

	Close();

	return 0;
}
BarObstacleDrawableBehaviour::BarObstacleDrawableBehaviour(SDL_Renderer* renderer, int screenwidth, int screenheight) : DrawableBehaviour(renderer, screenwidth, screenheight)
{
	LoadMedia();
}
Exemple #5
0
bool App::Init(string NAME, Uint16 WIDTH, Uint16 HEIGHT)
{
	bool bInit = true;

	SCREEN_WIDTH = WIDTH;
	SCREEN_HEIGHT = HEIGHT;
	APP_NAME = NAME;

	if ((SDL_Init(SDL_INIT_VIDEO)) < 0)
	{
		dFile.write("SDL failed to initialize! Error:", SDL_GetError());
		return false;
	}

	if (!SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "1"))
	{
		dFile.write("Linear texture filtering not enabled!", SDL_GetError());
		return false;
	}

	gWindow = SDL_CreateWindow(APP_NAME.c_str(), SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI);

	if (gWindow == NULL)
	{
		dFile.write("Failed to create window. SDL2 Error:", SDL_GetError());
		return false;
	}
	else
	{
		gRenderer = SDL_CreateRenderer(gWindow, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
		// gRenderer = SDL_CreateRenderer(gWindow, -1, SDL_RENDERER_ACCELERATED);
		if (gRenderer == NULL)
		{
			dFile.write("Renderer failed to create:", SDL_GetError());
			return false;
		}
		else
		{
			SDL_SetRenderDrawColor(gRenderer, 0xFF, 0xFF, 0xFF, 0xFF);
			int imgFlags = IMG_INIT_PNG;
			if (!(IMG_Init(imgFlags) & imgFlags))
			{
				dFile.write("SDL_image could not initialize! SDL_image Error:", IMG_GetError());
				return false;
			}
		}
	}

	if ((LoadMedia()) == false)
	{
		bInit = false;
	}

	// gScreenSurf = SDL_GetWindowSurface(gWindow);

	/*if (gScreenSurf == NULL)
	{
	dFile.write("Failed to create Surface Screen. Error: ", SDL_GetError());
	return false;
	}*/

	// debugFile.write("testing");
	return bInit;
}
bool VlcMediaPlayer::LoadMedia(const QUrl &source)
{
    return LoadMedia(source.toString());
}
Exemple #7
0
int main(int argc, char* args[])
{
	if (!Init())
	{
		std::cout << "failed to initialize\n";
	}

	if (!LoadMedia())
	{
		std::cout << "failed to load media\n";
	}

	SDL_Event e;

	Uint8 a = 255;

	bool quit = false;
	while (!quit)
	{
		while (SDL_PollEvent(&e) != 0)
		{
			if (e.type == SDL_KEYDOWN)
			{
				switch (e.key.keysym.sym)
				{
				case (SDLK_UP) :
				{
					if (a + 32 < 255)
					{
						a += 32;
					}
					else
					{
						a = 255;
					}
					break;
				}
				case (SDLK_DOWN) :
				{
					if (a - 32 > 0)
					{
						a -= 32;
					}
					else
					{
						a = 0;
					}
					break;
				}
				default:
				{
					break;
				}
				}
			}
			if (e.type == SDL_QUIT)
			{
				quit = true;
			}
		}

		//clear the screen
		SDL_SetRenderDrawColor(gRenderer, 0xFF, 0xFF, 0xFF, 0xFF);
		SDL_RenderClear(gRenderer);

		gBackground.Render(0, 0);

		gMainTexture.SetAlpha(a);
		gMainTexture.Render(0, 0);

		//update screen
		SDL_RenderPresent(gRenderer);
	}

	Close();
	return 0;
}