void Game::Paint() { GameEngine *pGameEngine = GameEngine::GetEngine(); SDL_Renderer *renderer = pGameEngine->GetRenderer(); // Draw the background office _pOfficeBitmap->Draw(renderer, 0, 0); // Draw the sprites pGameEngine->DrawSprites(); // Draw the number of guys who were hit char szText[64]; SDL_Rect rect = { 237, 360, 50, 50 }; sprintf(szText, " %d ", _iHits); SDL_Color text_color = {120, 120, 120}; SDL_Texture *text_texture = pGameEngine->DrawText(renderer, szText, _ttfFont, text_color); if(text_texture)SDL_RenderCopy(renderer, text_texture, NULL, &rect); // Draw the number of guys who were missed (got away) for (int i = 0; i < _iMisses; i++) _pSmallGuyBitmap->Draw(renderer, 389 + (_pSmallGuyBitmap->GetWidth() * i), 359); // Draw the game over message, if necessary if (_bGameOver) _pGameOverBitmap->Draw(renderer, 120, 110); SDL_RenderPresent(renderer); }
void Game::Start() { // Seed the random number generator srand(time(NULL)); GameEngine *pGE = GameEngine::GetEngine(); SDL_Renderer *renderer = pGE->GetRenderer(); // Create and load the bitmaps SDL_Color scTrans = {255, 0, 255, 255}; _pHighwayBitmap = new Bitmap(renderer, "res/Highway.bmp"); _pChickenBitmap = new Bitmap(renderer, "res/Chicken.bmp", &scTrans); _pCarBitmaps[0] = new Bitmap(renderer, "res/Car1.bmp", &scTrans); _pCarBitmaps[1] = new Bitmap(renderer, "res/Car2.bmp", &scTrans); _pCarBitmaps[2] = new Bitmap(renderer, "res/Car3.bmp", &scTrans); _pCarBitmaps[3] = new Bitmap(renderer, "res/Car4.bmp", &scTrans); _pChickenHeadBitmap = new Bitmap(renderer, "res/ChickenHead.bmp", &scTrans); // Create the chicken and car sprites Sprite* pSprite; SDL_Rect rcBounds = { 0, 0, 465, 400 }; _pChickenSprite = new Sprite(_pChickenBitmap, rcBounds, BA_STOP); _pChickenSprite->SetPosition(4, 175); _pChickenSprite->SetVelocity(0, 0); _pChickenSprite->SetZOrder(1); pGE->AddSprite(_pChickenSprite); pSprite = new Sprite(_pCarBitmaps[0], rcBounds, BA_WRAP); pSprite->SetPosition(70, 0); pSprite->SetVelocity(0, 7); pSprite->SetZOrder(2); pGE->AddSprite(pSprite); pSprite = new Sprite(_pCarBitmaps[1], rcBounds, BA_WRAP); pSprite->SetPosition(160, 0); pSprite->SetVelocity(0, 3); pSprite->SetZOrder(2); pGE->AddSprite(pSprite); pSprite = new Sprite(_pCarBitmaps[2], rcBounds, BA_WRAP); pSprite->SetPosition(239, 400); pSprite->SetVelocity(0, -5); pSprite->SetZOrder(2); pGE->AddSprite(pSprite); pSprite = new Sprite(_pCarBitmaps[3], rcBounds, BA_WRAP); pSprite->SetPosition(329, 400); pSprite->SetVelocity(0, -10); pSprite->SetZOrder(2); pGE->AddSprite(pSprite); // Initialize the remaining global variables _iInputDelay = 0; _iNumLives = 3; _iScore = 0; _bGameOver = false; }
void Game::Paint() { GameEngine* pGE = GameEngine::GetEngine(); SDL_Renderer* renderer = pGE->GetRenderer(); // Draw the background and saucer bitmaps _pBackground->Draw(renderer, 0, 0); _pSaucer[_bSaucerFlame ? 1:0]->Draw(renderer, _iSaucerX, _iSaucerY); // Force a repaint to redraw the saucer SDL_RenderPresent(renderer); }
void Game::Paint() { GameEngine *pGameEngine = GameEngine::GetEngine(); SDL_Renderer *renderer = pGameEngine->GetRenderer(); // Draw the background highway _pHighwayBitmap->Draw(renderer, 0, 0); // Draw the sprites pGameEngine->DrawSprites(); // Draw the number of remaining chicken lives for (int i = 0; i < _iNumLives; i++) _pChickenHeadBitmap->Draw(renderer, 406 + (_pChickenHeadBitmap->GetWidth() * i), 382); SDL_RenderPresent(renderer); }
void Game::Start() { // Seed the random number generator srand(SDL_GetTicks()); GameEngine *pGE = GameEngine::GetEngine(); SDL_Renderer *renderer = pGE->GetRenderer(); // Create and load the background and saucer bitmaps _pBackground = new Bitmap(renderer, "res/Background.bmp"); SDL_Color scTransColor = {0xFF, 0x0, 0xFF, 0xFF}; _pSaucer[0] = new Bitmap(renderer, "res/Saucer.bmp", &scTransColor); _pSaucer[1] = new Bitmap(renderer, "res/SaucerFlame.bmp", &scTransColor); // Set the initial saucer position and speed _iSaucerX = 250 - (_pSaucer[0]->GetWidth() / 2); _iSaucerY = 200 - (_pSaucer[0]->GetHeight() / 2); _iSpeedX = 0; _iSpeedY = 0; }
void Game::Start() { // Seed the random number generator srand(time(NULL)); GameEngine *pGE = GameEngine::GetEngine(); SDL_Renderer *renderer = pGE->GetRenderer(); // Create and load the bitmaps SDL_Color scTrans = {255, 0, 255, 255}; _pOfficeBitmap = new Bitmap(renderer, "res/Office.bmp"); _pTargetBitmap = new Bitmap(renderer, "res/Target.bmp", &scTrans); _pPowBitmap = new Bitmap(renderer, "res/Pow.bmp", &scTrans); _pGuyBitmaps[0] = new Bitmap(renderer, "res/Guy1.bmp", &scTrans); _pGuyBitmaps[1] = new Bitmap(renderer, "res/Guy2.bmp", &scTrans); _pGuyBitmaps[2] = new Bitmap(renderer, "res/Guy3.bmp", &scTrans); _pGuyBitmaps[3] = new Bitmap(renderer, "res/Guy4.bmp", &scTrans); _pGuyBitmaps[4] = new Bitmap(renderer, "res/Guy5.bmp", &scTrans); _pSmallGuyBitmap = new Bitmap(renderer, "res/SmallGuy.bmp", &scTrans); _pGameOverBitmap = new Bitmap(renderer, "res/GameOver.bmp", &scTrans); // Create the target, pow, and guy sprites SDL_Rect rcBounds = { 0, 0, 500, 400 }; _pTargetSprite = new Sprite(_pTargetBitmap, rcBounds, BA_STOP); _pTargetSprite->SetZOrder(4); pGE->AddSprite(_pTargetSprite); _pPowSprite = new Sprite(_pPowBitmap, rcBounds, BA_STOP); _pPowSprite->SetZOrder(3); _pPowSprite->SetHidden(true); pGE->AddSprite(_pPowSprite); _pGuySprites[0] = new Sprite(_pGuyBitmaps[0], rcBounds); _pGuySprites[0]->SetPosition(92, 175); _pGuySprites[0]->SetZOrder(2); _pGuySprites[0]->SetHidden(true); pGE->AddSprite(_pGuySprites[0]); _pGuySprites[1] = new Sprite(_pGuyBitmaps[1], rcBounds); _pGuySprites[1]->SetPosition(301, 184); _pGuySprites[1]->SetZOrder(2); _pGuySprites[1]->SetHidden(true); pGE->AddSprite(_pGuySprites[1]); _pGuySprites[2] = new Sprite(_pGuyBitmaps[2], rcBounds); _pGuySprites[2]->SetPosition(394, 61); _pGuySprites[2]->SetZOrder(2); _pGuySprites[2]->SetHidden(true); pGE->AddSprite(_pGuySprites[2]); rcBounds.x = 340; _pGuySprites[3] = new Sprite(_pGuyBitmaps[3], rcBounds, BA_WRAP); _pGuySprites[3]->SetNumFrames(4); _pGuySprites[3]->SetPosition(500, 10); _pGuySprites[3]->SetVelocity(-3, 0); _pGuySprites[3]->SetZOrder(1); _pGuySprites[3]->SetHidden(true); pGE->AddSprite(_pGuySprites[3]); rcBounds.x = 385; _pGuySprites[4] = new Sprite(_pGuyBitmaps[4], rcBounds, BA_WRAP); _pGuySprites[4]->SetNumFrames(4); _pGuySprites[4]->SetFrameDelay(5); _pGuySprites[4]->SetPosition(260, 60); _pGuySprites[4]->SetVelocity(5, 0); _pGuySprites[4]->SetZOrder(1); _pGuySprites[4]->SetHidden(true); pGE->AddSprite(_pGuySprites[4]); // Initialize the remaining global variables _iGuyMasterDelay = 50; _iHits = 0; _iMisses = 0; _bGameOver = false; //Load the music _mmMusic = Mix_LoadMUS("res/Music.xm"); if(_mmMusic==nullptr) cout << "Could not play music: " << Mix_GetError(); //Load the sound effetcs _mcWhack = Mix_LoadWAV("res/Whack.wav"); _mcTaunt = Mix_LoadWAV("res/Taunt.wav"); _mcBoo = Mix_LoadWAV("res/Boo.wav"); // Play the background music pGE->PlaySong(_mmMusic); }