// Global Variablese int gemist = 0; int score = 0; int turn = 1; int lvl = 1; int speed = 200; int timess = 0; int done = 0; int done1 = 0; // Alle classen hiero class duck { private: // positie vogeltje int x,y; // snelheid vogeltje int xVel, yVel; // hoeveel keer hij een kant heeft gekozen int keertjes; // Links true rechts true? int links, rechts; // Hoe hoog moet ie vliegen int HoeHoog; //click int click; //err int nietnogeenkeer; public: // geef Start positie duck(); // waar vliegt vogeltje heen? void move(); // vogettje neer geschoten? int shot(); // laat vogeltje zien void show(); // Vogeltje gemist? void miss(); void reset(); void addturn(); // anders gaat de score -20 steeds -_- bool missed; bool dead; }; duck::duck() { x = 0; y = 0; xVel = 0; yVel = 0; keertjes = 0; links = 0; rechts = 0; missed = false; dead = false; click = 0; nietnogeenkeer = 0; } void duck::move() { // hij kan aan links of rechts beginnen // als hij rechts begint moet hij persee naar links blijven gaan // als hij links begint moet hij persee rechts blijven gaan xVel = 0; yVel = 0; int WelkeKant = 0; WelkeKant = rand() % 2 + 1; if ( WelkeKant == 1 && keertjes == 0 ) { x = 0; keertjes = 1; links = 1; HoeHoog = rand() % 6 + 1; switch ( HoeHoog ) { case 1: y = 58; break; case 2: y = 116; break; case 3: y = 174; break; case 4: y = 232; break; case 5: y = 290; break; case 6: y = 348; break; } } if ( WelkeKant == 2 && keertjes == 0 ) { x = 640 - 32; keertjes = 1; rechts = 1; HoeHoog = rand() % 6 + 1; switch ( HoeHoog ) { case 1: y = 58; break; case 2: y = 116; break; case 3: y = 174; break; case 4: y = 232; break; case 5: y = 290; break; case 6: y = 348; break; } } if ( links == 1 && missed == false ) { xVel = xVel + 12; } if ( rechts == 1 && missed == false ) { xVel = xVel - 12; } if ( dead == true ) { yVel = yVel + 32; } x = x + xVel; y = y + yVel; } int duck::shot() { // mouse offsets int mx, my; //If a mouse button was pressed if( event.type == SDL_MOUSEBUTTONDOWN ) { //If the left mouse button was pressed if( event.button.button == SDL_BUTTON_LEFT ) { //Get the mouse offsets mx = event.button.x; my = event.button.y; //Play the scratch effect if( Mix_PlayChannel( -1, schot, 0 ) == -1 ) { return 1; } if ( mx >= x && mx <= (x+80) && my >= y && my <= (y+58) ) { if ( click == 0 ) { dead = true; score = score + 20; } } } } } void duck::miss() { if ( x < -83 || x > 640 ) { if ( missed == false && dead == false ) { score = score - 10; gemist += 1; missed = true; } } } void duck::show() { if ( links == 1 ) { apply_surface(x,y,tiles,screen,&clip[1]); } else { // laat duck zien apply_surface(x,y,tiles,screen,&clip[0]); } } void duck::addturn() { if ( missed == true && nietnogeenkeer == 0 ) { turn++; nietnogeenkeer = nietnogeenkeer + 1; } if ( dead == true && nietnogeenkeer == 0 ) { turn++; nietnogeenkeer = nietnogeenkeer + 1; } } void duck::reset() { keertjes = 0; links = 0; rechts = 0; missed = false; dead = false; click = 0; HoeHoog = 0; nietnogeenkeer = 0; } // maak duck aan dit moet later veranderd worden // omdat het per lvl gaat duck ducky; duck ducky1; duck ducky2; duck ducky3; duck ducky4; duck ducky5; duck ducky6; duck ducky7; duck ducky8; duck ducky9; void maketiles() { // duckie clip[ 0 ].x = 1; clip[ 0 ].y = 1; clip[ 0 ].w = 80; clip[ 0 ].h = 58; clip[ 1 ].x = 82; clip[ 1 ].y = 1; clip[ 1 ].w = 80; clip[ 1 ].h = 58; } // Laat score etc zien void showinfo() { // laat scoren vrij anders krijg ik gemene buggers SDL_FreeSurface( scoren ); SDL_FreeSurface( gemissed ); // slaat ie de int in op char buffer [50]; char missers [50]; // zet alles in 1 char sprintf (buffer, "Score: %i", score); sprintf (missers, "Misses: %i", gemist); //Render the text scoren = TTF_RenderText_Solid( font, buffer, textColor ); gemissed = TTF_RenderText_Solid( font, missers, textColor ); //laat zien op scherm apply_surface(20,430,scoren,screen); apply_surface(500,430,gemissed,screen); } int levels() { while ( turn == 11 && lvl < 10 && gemist <= 2 && gemist >= 0 ) { SDL_FreeSurface( lvlUP ); lvlUP = TTF_RenderText_Solid( font,"Good job Hunter youre one lvl UP!!", textColor1 ); apply_surface(100, 200,lvlUP,screen); SDL_Flip( screen ); //If there's an event to handle if( SDL_PollEvent( &event ) ) { //If a key was pressed if( event.type == SDL_KEYDOWN ) { turn = 1; ducky.reset(); ducky1.reset(); ducky2.reset(); ducky3.reset(); ducky4.reset(); ducky5.reset(); ducky6.reset(); ducky7.reset(); ducky8.reset(); ducky9.reset(); lvl++; speed = speed - 22; gemist = 0; } } //If the user has Xed out the window if( event.type == SDL_QUIT ) { //Quit the program quit = true; } } //If the user has Xed out the window if( event.type == SDL_QUIT ) { //Quit the program quit = true; } while ( lvl == 10 && done1 == 0 ) { SDL_Flip( screen ); // bacground weer laden zodat je niet 10 ducks ziet apply_surface(0,0,background,screen); SDL_FreeSurface( lvlUP ); lvlUP = TTF_RenderText_Solid( font,"You Shot all the Buggies! Good Job", textColor1 ); apply_surface(50,200,lvlUP,screen); SDL_Flip( screen ); //If there's an event to handle if( SDL_PollEvent( &event ) ) { //If a key was pressed if( event.type == SDL_KEYDOWN ) { quit = true; done1 = 1; } } } while ( gemist > 2 && turn == 12 && done == 0) { SDL_FreeSurface( lvlUP ); lvlUP = TTF_RenderText_Solid( font,"Aww you Failed to shoot 8 of the 10 buggies", textColor1 ); apply_surface(50,200,lvlUP,screen); SDL_Flip( screen ); //If there's an event to handle if( SDL_PollEvent( &event ) ) { //If a key was pressed if( event.type == SDL_KEYDOWN ) { quit = true; done = 1; } } } }