Frogger for mbed

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

Fork of 4180_Lab4_v6 by Erick Cardenas

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;
    };