Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///////////////////////////////////////////////////////////////////////
- // Name: Rahat Abbasi
- // Prism Account: rabbasi3
- // Collaboration: //
- // "I worked on the homework assignment alone, using only //
- // course materials." //
- // or //
- // "I received outside aid on this assigned from the following //
- // person(s): //
- ///////////////////////////////////////////////////////////////////////
- #include "myLib.h"
- #include <stdlib.h>
- #include "PressEnter2.h"
- #include "FroggerBG.h"
- #include "You_Lose.h"
- #define NUMCARS 8
- #define NUMLOGS 3
- #define NUMPADS 4
- #define NUMCOLORS 9
- #define FrogSize 10
- int PAD_COUNT=0;
- int PAD_ZERO=0;
- int PAD_ONE=0;
- int PAD_TWO=0;
- int PAD_THREE=0;
- typedef struct
- {
- int row;
- float col;
- int oldcol;
- float speed;
- int lane;
- int height;
- int width;
- u8 color;
- } CAR;
- typedef struct
- {
- int row;
- float col;
- float speed;
- int lane;
- int height;
- int width;
- u8 color;
- } LOG;
- typedef struct
- {
- int row;
- int col;
- int height;
- int width;
- } PAD;
- typedef struct
- {
- int row;
- int col;
- int alive;
- u8 color;
- int height;
- int width;
- int speed;
- } FROG;
- u16 colors[] = {BLACK, WHITE, RED, GREEN, BLUE, MAGENTA, CYAN, YELLOW, LTGRAY};
- // This enum is essentially the same as
- // #define BLACKINDEX 0
- // #define WHITEINDEX 1
- // etc.
- enum {BLACKINDEX=(255-NUMCOLORS), WHITEINDEX, REDINDEX, GREENINDEX, BLUEINDEX, MAGENTAINDEX, CYANINDEX, YELLOWINDEX,
- LTGRAYINDEX};
- //Define all your Game States that are possible during this game
- typedef enum{ TITLE, PLAYING, WIN, LOSE, PAUSE} STATE;
- //Prototypes
- void LoadFroggerBGPal();
- void LoadNormPal();
- void DrawCars(CAR cars[]);
- void DontJump(int Button);
- void DrawLogs(LOG logs[]);
- void initCars(CAR cars[]);
- void initLogs(LOG logs[]);
- void initPads(PAD pads[]);
- void initFroggy(FROG froggy);
- void CheckFrogPadLanding(FROG frog, PAD pads[]);
- FROG froggy;
- int main()
- {
- CAR cars[NUMCARS];
- LOG logs[NUMLOGS];
- PAD pads[NUMPADS];
- //FROG froggy;
- int j;
- int k;
- LoadFroggerBGPal();
- initCars(cars);
- initLogs(logs);
- LoadNormPal();
- //Pads Dimensions
- initPads(pads);
- //initFroggy(froggy);
- froggy.col= 120;
- froggy.row= 150;
- froggy.color= GREENINDEX;
- froggy.speed= FrogSize;
- froggy.height= FrogSize;
- froggy.width= FrogSize;
- froggy.alive=1;
- int DEATH_COUNTER=0;
- STATE gamestate= TITLE;
- REG_DISPCTL= MODE4 | BG2_ENABLE;
- videoBuffer = BUFFER0;
- int NUMLIVES=3;
- while (1)
- {
- switch(gamestate){
- case TITLE:
- //draw the title screen
- copyPicture4(PressEnter2Bitmap);
- //FlipPage();
- while (!(KEY_DOWN_NOW(BUTTON_START)));
- gamestate= PLAYING;
- break;
- case PLAYING:
- copyPicture4(FroggerBGBitmap);
- DrawCars(cars);
- if(KEY_DOWN_NOW(BUTTON_LEFT))
- {
- froggy.col -= froggy.speed;
- }
- if(KEY_DOWN_NOW(BUTTON_RIGHT))
- {
- froggy.col += froggy.speed;
- }
- if (froggy.col <0)
- {
- froggy.col=0;
- }
- if (froggy.col > 240-froggy.width)
- {
- froggy.col= 240-froggy.width;
- }
- if(KEY_DOWN_NOW(BUTTON_UP))
- {
- froggy.row -= froggy.speed;
- }
- if(KEY_DOWN_NOW(BUTTON_DOWN))
- {
- froggy.row += froggy.speed;
- }
- if (froggy.row <=0)
- {
- froggy.row=0;
- }
- if (froggy.row > 159-froggy.height)
- {
- froggy.row= 159-froggy.height;
- }
- for(k=0; k<NUMCARS; k++)
- {
- if ((froggy.col) >= (cars[k].col) &&
- (froggy.col) <= (cars[k].col +cars[k].width) &&
- (froggy.row) <= (cars[k].row +cars[k].height) &&
- (froggy.row) >= (cars[k].row))
- {
- froggy.col= 120;
- froggy.row= 150;
- DEATH_COUNTER++;
- }
- }
- CheckFrogPadLanding(froggy, pads);
- if (DEATH_COUNTER==3)
- {
- gamestate= LOSE;
- }
- DontJump(BUTTON_UP);
- DontJump(BUTTON_LEFT);
- DontJump(BUTTON_RIGHT);
- DontJump(BUTTON_DOWN);
- drawRect4(froggy.row, froggy.col, froggy.height, froggy.width, GREENINDEX);
- DrawLogs(logs);
- waitForVblank();
- FlipPage();
- break;
- case WIN:
- break;
- case LOSE:
- copyPicture4(You_LoseBitmap);
- FlipPage();
- if (KEY_DOWN_NOW(BUTTON_START))
- {
- DEATH_COUNTER=0;
- //int DEATH_COUNTER=0;
- PAD_COUNT=0;
- PAD_ZERO=0;
- PAD_ONE=0;
- PAD_TWO=0;
- PAD_THREE=0;
- initCars(cars);
- initLogs(logs);
- gamestate=PLAYING;
- }
- break;
- case PAUSE:
- break;
- }
- }
- }
- void DontJump(int Button)
- {
- if (KEY_DOWN_NOW(Button))
- {
- while (1)
- {
- if (!(KEY_DOWN_NOW(Button)))
- {
- break;
- }
- }
- }
- }
- void LoadFroggerBGPal()
- {
- for(int i=0; i<255;i++)
- {
- palette[i]= FroggerBGPal[i];
- }
- for(int i=BLACKINDEX; i<255; i++)
- {
- palette[i]= colors[i];
- }
- }
- void LoadNormPal()
- {
- for (int i=0; i<NUMCOLORS;++i)
- {
- palette[i] = colors[i];
- }
- }
- void DrawLogs(LOG logs[])
- {
- int k;
- for(k=0; k<NUMLOGS; k++)
- {
- drawRect4(logs[k].row, logs[k].col, logs[k].height, logs[k].width, GREENINDEX);
- }
- for(k=0; k<NUMLOGS; k++)
- {
- logs[k].col +=logs[k].speed;
- }
- }
- void DrawCars(CAR cars[])
- {
- int k;
- for(k=0; k<NUMCARS; k++)
- {
- drawRect4(cars[k].row, cars[k].col, cars[k].height, cars[k].width, cars[k].color);
- //while (!(KEY_DOWN_NOW(BUTTON_LEFT)));
- //drawRect4(10, 10,15,15,GREENINDEX);
- }
- for(k=0; k<NUMCARS; k++)
- {
- cars[k].col +=cars[k].speed;
- }
- for(k=0; k<NUMCARS; k++)
- {
- if((cars[k].col==(234-cars[k].width))&&(cars[k].speed==2))
- {
- cars[k].col=0;
- }
- if((cars[k].col==80)&&(cars[k].speed==-2))
- {
- cars[k].col=240;
- }
- }
- }
- void initCars(CAR cars[])
- {
- int j;
- for(j=0; j<NUMCARS; j++)
- {
- cars[j].col= j%8*25;
- cars[j].row= j%4*15+95;
- cars[j].color= rand()%4 + 2;
- cars[j].speed= (j%2? -2: 2);
- cars[j].height= 5;
- cars[j].width= 10;
- }
- }
- void initLogs(LOG logs[])
- {
- int j;
- for(j=0; j<NUMLOGS; j++)
- {
- logs[j].col= j%8*25;
- logs[j].color= rand()%4 + 2;
- logs[j].speed= (j%2? -1: 2);
- logs[j].height= 8;
- logs[j].row= j%4*logs[j].height+20;
- logs[j].width= 40;
- }
- }
- void initPads(PAD pads[])
- {
- pads[0].row=0;
- pads[0].col=65;
- pads[0].height=15;
- pads[0].width=20;
- pads[1].row=0;
- pads[1].col=99;
- pads[1].height=15;
- pads[1].width=20;
- pads[2].row=0;
- pads[2].col=132;
- pads[2].height=14;
- pads[2].width=20;
- pads[3].row=0;
- pads[3].col=164;
- pads[3].height=14;
- pads[3].width=14;
- }
- void initFroggy(FROG froggy)
- {
- froggy.col= 120;
- froggy.row= 150;
- froggy.color= GREENINDEX;
- froggy.speed= FrogSize;
- froggy.height= FrogSize;
- froggy.width= FrogSize;
- froggy.alive=1;
- }
- void CheckFrogPadLanding(FROG froggy, PAD pads[])
- {
- if (froggy.row<=(pads[0].height) &&
- froggy.col>=(pads[0].col) &&
- froggy.col<=(pads[0].col+pads[0].width)
- )
- {
- froggy.col=120;
- froggy.row=150;
- PAD_COUNT++;
- PAD_ZERO=1;
- }
- if (froggy.row<=(pads[1].height) &&
- froggy.col>=(pads[1].col) &&
- froggy.col<=(pads[1].col+pads[1].width)
- )
- {
- froggy.col=120;
- froggy.row=150;
- PAD_COUNT++;
- PAD_ONE=1;
- }
- if (froggy.row<=(pads[2].height) &&
- froggy.col>=(pads[2].col) &&
- froggy.col<=(pads[2].col+pads[2].width)
- )
- {
- froggy.col=120;
- froggy.row=150;
- PAD_COUNT++;
- PAD_TWO=1;
- }
- if (froggy.row<=(pads[3].height) &&
- froggy.col>=(pads[3].col) &&
- froggy.col<=(pads[3].col+pads[3].width)
- )
- {
- froggy.col=120;
- froggy.row=150;
- PAD_COUNT++;
- PAD_THREE=1;
- }
- if (PAD_ZERO)
- {
- drawRect4(0,66,froggy.height, froggy.width, froggy.color);
- }
- if (PAD_ONE)
- {
- drawRect4(0,100,froggy.height, froggy.width, froggy.color);
- }
- if (PAD_TWO)
- {
- drawRect4(0,132,froggy.height, froggy.width, froggy.color);
- }
- if (PAD_THREE)
- {
- drawRect4(0,164,froggy.height, froggy.width, froggy.color);
- }
- }
Add Comment
Please, Sign In to add comment