SharpShooter

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

Shooter.h

Committer:
jboettcher
Date:
2016-10-31
Revision:
15:e09ab0d14d4b
Parent:
12:2f358065ba3f

File content as of revision 15:e09ab0d14d4b:

extern uLCD_4DGL uLCD;
extern Mutex mutex;
extern wave_player waver;

class Shooter
{
    int x;

public:
    Shooter();
    void drawShooter();
    void eraseShooter();
    void moveLeft();
    void moveRight();
    int getLocation();
};

Shooter::Shooter() {
    x = 64;
}

void Shooter::drawShooter() {
    mutex.lock();
    uLCD.triangle(x, 115, x-5, 125, x+5, 125, BLUE);
    uLCD.triangle(x, 118, x-2, 123, x+2, 123, BLUE);
    mutex.unlock();
}

void Shooter::eraseShooter() {
    mutex.lock();
    uLCD.filled_rectangle(0, 115, 127, 127, BACKGROUND);
    mutex.unlock();
}

void Shooter::moveLeft() {
    if (x==24) return;
    mutex.lock();
    Shooter::eraseShooter();
    if (x==64) x = 24;
    if (x==104) x = 64;
    Shooter::drawShooter();
    mutex.unlock();
    
    FILE *wave_file;
    wave_file=fopen("/sd/wavfiles/move.wav","r");
    waver.play(wave_file);
    fclose(wave_file);
}

void Shooter::moveRight() {
    if (x==104) return;
    mutex.lock();
    Shooter::eraseShooter();
    if (x==64) x = 104;
    if (x==24) x = 64;
    Shooter::drawShooter();
    mutex.unlock();
    
    FILE *wave_file;
    wave_file=fopen("/sd/wavfiles/move.wav","r");
    waver.play(wave_file);
    fclose(wave_file);
}  

int Shooter::getLocation() {
    return x;
}