Frogger in progress. Currently the digital input is non-functioning. Cars do not erase path, death-thread not complete.
Dependencies: 4DGL-uLCD-SE PinDetect SDFileSystem mbed-rtos mbed wave_player
Diff: Robot.h
- Revision:
- 0:9f1095365b9a
- Child:
- 1:abd7e0631db8
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Robot.h Sat Oct 29 22:15:03 2016 +0000 @@ -0,0 +1,128 @@ +//robot +class Robot +{ + Mutex stdio_mutex; +public: + void drawFrog() { + uLCD.filled_rectangle(XPosition-5,YPosition-5,XPosition+5,YPosition+5,RED); + } + + 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.filled_rectangle(Xp-2,Yp-1,Xp+2,Yp+1,WHITE); + } + + void drawCar1(int Position1) { + stdio_mutex.lock(); + uLCD.filled_rectangle(Position1-10,95-4,Position1+10,95+4,BLUE); + stdio_mutex.unlock(); + } + + 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() { + setYPosition(getYPosition() - 21); + } + void moveBackward() { + setYPosition(getYPosition() + 21); + } + void moveLeft() { + setXPosition(getXPosition() - 21); + } + void moveRight() { + setXPosition(getXPosition() + 21); + } + + int getXPosition() { + return XPosition; + } + int getYPosition() { + return YPosition; + } + + void setXPosition(int x) { + XPosition=x; + } + void setYPosition(int y) { + YPosition=y; + } + + Robot() + { + XPosition = 74; + YPosition = 116; + } +private: + + int XPosition; + int YPosition; + };