Frogger for mbed
Dependencies: 4DGL-uLCD-SE Motor PinDetect SDFileSystem mbed-rtos mbed wave_player
Fork of 4180_Lab4_v6 by
Robot.h
- Committer:
- swilliams346
- Date:
- 2016-11-02
- Revision:
- 3:427c365950d7
- Parent:
- 1:abd7e0631db8
File content as of revision 3:427c365950d7:
//robot class Robot { Mutex stdio_mutex; int FrogX; int FrogY; public: void drawFrog() { uLCD.filled_rectangle(XPosition-5,YPosition-5,XPosition+5,YPosition+5,RED); } void drawDeadFrog() { uLCD.filled_rectangle(XPosition-5,YPosition-5,XPosition+5,YPosition+5,WHITE); } void drawOutline() { uLCD.line(0, 0 , 0, 127, BLACK); uLCD.line(0, 0 , 127, 0, BLACK); uLCD.line(127, 127 , 0, 127, BLACK); uLCD.line(127, 127 , 127, 0, BLACK); } void drawGrass(int Xp,int Yp) { uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,GREEN); } void drawBar(int Xp,int Yp) { uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,BLACK); } void drawRoad(int Xp,int Yp) { uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,BLACK); uLCD.line(Xp-11, Yp+1 , Xp+11, Yp+1, WHITE); uLCD.line(Xp-11, Yp-1 , Xp+11, Yp-1, WHITE); } void drawCar1(int Position1, int CarWidth) { uLCD.filled_rectangle(Position1-CarWidth-1,90,Position1-CarWidth-3,100,BLACK); uLCD.line(Position1-CarWidth-1, 95+1 , Position1-CarWidth-4, 95+1, WHITE); uLCD.line(Position1-CarWidth-1, 95-1 , Position1-CarWidth-4, 95-1, WHITE); uLCD.filled_rectangle(Position1-CarWidth,95-4,Position1+CarWidth,95+4,BLUE); } void drawCar2(int Position2, int CarWidth) { uLCD.filled_rectangle(Position2+CarWidth+1,48,Position2+CarWidth+3,58,BLACK); uLCD.line(Position2+CarWidth+1, 53+1 , Position2+CarWidth+4, 53+1, WHITE); uLCD.line(Position2+CarWidth+1, 53-1 , Position2+CarWidth+4, 53-1, WHITE); uLCD.filled_rectangle(Position2-CarWidth,48,Position2+CarWidth,56,RED); } void drawWater(int Xp,int Yp) { uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,BLUE); if(Xp == 11 || Xp == 53 || Xp == 95){ uLCD.filled_rectangle(Xp-6,Yp-6,Xp+6,Yp+6,GREEN); } } void drawDrown1() { uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE); uLCD.filled_rectangle(XPosition-4,YPosition-4,XPosition+4,YPosition+4,RED); uLCD.circle(XPosition, YPosition , 2, WHITE); } void drawDrown2() { uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE); uLCD.filled_rectangle(XPosition-3,YPosition-3,XPosition+3,YPosition+3,RED); uLCD.circle(XPosition, YPosition, 3, WHITE); } void drawDrown3() { uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE); uLCD.filled_rectangle(XPosition-1,YPosition-1,XPosition+1,YPosition+1,RED); uLCD.circle(XPosition, YPosition, 4 , WHITE); } void drawDrown4() { uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE); uLCD.circle(XPosition, YPosition, 5 , WHITE); uLCD.circle(XPosition, YPosition, 2 , WHITE); } void drawDrown5() { uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE); } void drawHelper(int Xp,int Yp) { if(Yp == 11) { drawBar(Xp,Yp); //Row 1 } if(Yp == 32){ drawGrass(Xp,Yp); //Row 2 } if(Yp == 53){ drawRoad(Xp,Yp); //Row 3 } if(Yp == 74){ drawWater(Xp,Yp); //Row 4 } if(Yp == 95){ drawRoad(Xp,Yp); //Row 5 } if(Yp == 116){ drawGrass(Xp,Yp); //Row 6 } } void drawEraser() { drawHelper(XPosition,YPosition); } void moveForward() { drawHelper(XPosition,YPosition); setYPosition(getYPosition() - 21); drawFrog(); } void moveBackward() { FrogY = getYPosition(); if(FrogY > 11){ drawHelper(XPosition,YPosition); setYPosition(FrogY + 21); drawFrog(); } } void moveLeft() { FrogX = getXPosition(); if(FrogX > 11){ drawHelper(XPosition,YPosition); setXPosition(FrogX - 21); drawFrog(); } } void moveRight() { FrogX = getXPosition(); if(FrogX < 116){ drawHelper(XPosition,YPosition); setXPosition(FrogX + 21); drawFrog(); } } int getXPosition() { return XPosition; } int getYPosition() { return YPosition; } void setXPosition(int x) { XPosition=x; } void setYPosition(int y) { YPosition=y; } Robot() { XPosition = 53; YPosition = 116; } private: int XPosition; int YPosition; };