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; }
//============================================================================= 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(); }
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()); }
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; }