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::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); }