Scott Williams / Mbed 2 deprecated Frogger

Dependencies:   4DGL-uLCD-SE Motor PinDetect SDFileSystem mbed-rtos mbed wave_player

Fork of 4180_Lab4_v6 by Erick Cardenas

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Robot.h Source File

Robot.h

00001 //robot
00002 class Robot
00003 {
00004     Mutex stdio_mutex;
00005     int FrogX;
00006     int FrogY;
00007 public:
00008     void drawFrog() {
00009     uLCD.filled_rectangle(XPosition-5,YPosition-5,XPosition+5,YPosition+5,RED);
00010     }
00011     
00012     void drawDeadFrog() {
00013     uLCD.filled_rectangle(XPosition-5,YPosition-5,XPosition+5,YPosition+5,WHITE);
00014     }
00015     
00016     void drawOutline() {
00017     uLCD.line(0, 0 , 0, 127, BLACK);
00018     uLCD.line(0, 0 , 127, 0, BLACK);
00019     uLCD.line(127, 127 , 0, 127, BLACK);
00020     uLCD.line(127, 127 , 127, 0, BLACK);
00021     }
00022     
00023     void drawGrass(int Xp,int Yp) {
00024     uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,GREEN);
00025     }
00026     
00027     void drawBar(int Xp,int Yp) {
00028     uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,BLACK);
00029     }
00030     
00031     void drawRoad(int Xp,int Yp) {
00032     uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,BLACK);
00033     uLCD.line(Xp-11, Yp+1 , Xp+11, Yp+1, WHITE);
00034     uLCD.line(Xp-11, Yp-1 , Xp+11, Yp-1, WHITE);
00035     }
00036     
00037     void drawCar1(int Position1, int CarWidth) {
00038     uLCD.filled_rectangle(Position1-CarWidth-1,90,Position1-CarWidth-3,100,BLACK);
00039     uLCD.line(Position1-CarWidth-1, 95+1 , Position1-CarWidth-4, 95+1, WHITE);
00040     uLCD.line(Position1-CarWidth-1, 95-1 , Position1-CarWidth-4, 95-1, WHITE);
00041     uLCD.filled_rectangle(Position1-CarWidth,95-4,Position1+CarWidth,95+4,BLUE);
00042     }
00043     
00044     void drawCar2(int Position2, int CarWidth) {
00045     uLCD.filled_rectangle(Position2+CarWidth+1,48,Position2+CarWidth+3,58,BLACK);
00046     uLCD.line(Position2+CarWidth+1, 53+1 , Position2+CarWidth+4, 53+1, WHITE);
00047     uLCD.line(Position2+CarWidth+1, 53-1 , Position2+CarWidth+4, 53-1, WHITE);
00048     uLCD.filled_rectangle(Position2-CarWidth,48,Position2+CarWidth,56,RED);
00049     }
00050     
00051     void drawWater(int Xp,int Yp) {
00052     uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,BLUE);
00053         if(Xp == 11 || Xp == 53 || Xp == 95){
00054             uLCD.filled_rectangle(Xp-6,Yp-6,Xp+6,Yp+6,GREEN);
00055         }
00056     }
00057     
00058     void drawDrown1() {
00059     uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE);
00060     uLCD.filled_rectangle(XPosition-4,YPosition-4,XPosition+4,YPosition+4,RED);
00061     uLCD.circle(XPosition, YPosition , 2, WHITE);
00062     }
00063     void drawDrown2() {
00064     uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE);
00065     uLCD.filled_rectangle(XPosition-3,YPosition-3,XPosition+3,YPosition+3,RED);
00066     uLCD.circle(XPosition, YPosition, 3, WHITE);
00067     }
00068     void drawDrown3() {
00069     uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE);
00070     uLCD.filled_rectangle(XPosition-1,YPosition-1,XPosition+1,YPosition+1,RED);
00071     uLCD.circle(XPosition, YPosition, 4 , WHITE);
00072     }
00073     void drawDrown4() {
00074     uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE);
00075     uLCD.circle(XPosition, YPosition, 5 , WHITE);
00076     uLCD.circle(XPosition, YPosition, 2 , WHITE);
00077     }
00078     void drawDrown5() {
00079     uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE);
00080     }
00081     
00082     void drawHelper(int Xp,int Yp) {
00083         if(Yp == 11) {
00084             drawBar(Xp,Yp);   //Row 1
00085             }
00086         if(Yp == 32){
00087             drawGrass(Xp,Yp); //Row 2
00088             }
00089         if(Yp == 53){
00090             drawRoad(Xp,Yp);  //Row 3
00091             }
00092         if(Yp == 74){
00093             drawWater(Xp,Yp); //Row 4
00094             }
00095         if(Yp == 95){   
00096             drawRoad(Xp,Yp);  //Row 5
00097             }
00098         if(Yp == 116){
00099             drawGrass(Xp,Yp); //Row 6
00100             }
00101     }
00102     
00103     void drawEraser() {
00104         drawHelper(XPosition,YPosition);
00105     }
00106     
00107     void moveForward() {
00108         drawHelper(XPosition,YPosition);
00109         setYPosition(getYPosition() - 21);
00110         drawFrog();
00111     }
00112     void moveBackward() {
00113     FrogY = getYPosition();
00114         if(FrogY > 11){
00115         drawHelper(XPosition,YPosition);
00116         setYPosition(FrogY + 21);
00117         drawFrog();
00118         }
00119     }
00120     void moveLeft() {
00121     FrogX = getXPosition();
00122         if(FrogX > 11){
00123         drawHelper(XPosition,YPosition);
00124         setXPosition(FrogX - 21);
00125         drawFrog();
00126         }
00127     }
00128     void moveRight() {
00129     FrogX = getXPosition();
00130         if(FrogX < 116){
00131         drawHelper(XPosition,YPosition);
00132         setXPosition(FrogX + 21);
00133         drawFrog();
00134         }
00135     }
00136     
00137     int getXPosition() {
00138         return XPosition;
00139         }
00140     int getYPosition() {
00141         return YPosition;
00142         }
00143         
00144     void setXPosition(int x) {
00145         XPosition=x;
00146         }
00147     void setYPosition(int y) {
00148         YPosition=y;
00149         }
00150     
00151     Robot() 
00152     {
00153     XPosition = 53;
00154     YPosition = 116;
00155     }
00156 private:
00157     
00158     int XPosition;
00159     int YPosition;
00160     };