mbed version of the Dance Maniax game

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

orb/orb_public.cpp

Committer:
jbald9312
Date:
2017-03-13
Revision:
0:43fc00aa360a

File content as of revision 0:43fc00aa360a:

#include "orb_public.h"


    orb_public::orb_public() {}
    orb_public::orb_public(int x, int y) { x_pos = x; y_pos = y;}
    int orb_public::get_posX() {return x_pos;}
    int orb_public::get_posY() { return y_pos;}
    void orb_public::set_posX(int x) {x_pos = x;}
    void orb_public::set_posY(int y) {y_pos = y;}
    bool orb_public::get_b() {return b;}
    ORB_STATUS orb_public::get_status() {return status;}




//ORB orb_record[MAX_NUM_ORB];
//int orb_tick=0;
//int orb_interval = 10;
//int score = 0;
//uLCD_4DGL uLCD(p9,p10,p20);


/*void orb_public::orb_setup(void) {
    stdio_mutex.lock();
    uLCD.color(0xFFFFFF);
    uLCD.locate(SIZE_X - 5, 0);
    uLCD.printf("Score:");
    uLCD.color(0xFFFFFF);
    uLCD.locate(SIZE_X - 2, 1);
    uLCD.printf("%d", score);
    stdio_mutex.unlock();
}
void orb_public::orb_generator(void){
    orb_tick++;
    // only fire the missile at certain ticks
    if((orb_tick % orb_interval)==1 || orb_tick==0){
        orb_create();
    }
    
    // update the missiles and draw them
    orb_update_position();
}
void orb_public::orb_create(void){
    int i;
    for(i=0;i<MAX_NUM_ORB;i++){
        if(orb_record[i].status == ORB_DEACTIVE && (rand() % 2 == 0)){
            orb_record[i].y = SIZE_Y;
            //each missile has its own tick
            orb_record[i].tick = 0;
            //the missile starts at its source
            orb_record[i].x = SIZE_X / 2;
            orb_record[i].status = ORB_ACTIVE;
            orb_record[i].b = true;
            break;
        }
    }
}
void orb_public::orb_update_position(void) {
    int i;
    for(i=0;i<MAX_NUM_ORB;i++){
        if(orb_record[i].status == ORB_ACTIVE){
            // update missile position
            stdio_mutex.lock();
            uLCD.circle(SIZE_X / 2, SIZE_Y / 2, 8, WHITE);
            uLCD.filled_circle(orb_record[i].x, orb_record[i].y, 8, RED);
            uLCD.filled_circle(orb_record[i].x, orb_record[i].y, 8, BLACK);
            stdio_mutex.unlock();
            orb_record[i].y = orb_record[i].y - 5;
            //update missile's internal tick
            orb_record[i].tick++;
            
            if (ain > 0.6f && (orb_record[i].y < (SIZE_Y/2) + 5 && orb_record[i].y > (SIZE_Y/2) - 10)) {
                stdio_mutex.lock();
                uLCD.filled_circle(SIZE_X / 2, SIZE_Y / 2, 8, BLUE);
                stdio_mutex.unlock();
                if(orb_record[i].b) {
                    orb_record[i].b = false;
                    score = score + 1;
                    stdio_mutex.lock();
                    uLCD.color(0xFFFFFF);
                    uLCD.text_width(1);
                    uLCD.text_height(1);
                    uLCD.locate(SIZE_X - 2, 1);
                    uLCD.printf("%d", score);
                    stdio_mutex.unlock();
                }
                
            } else if (ain > 0.6f && !(orb_record[i].y < (SIZE_Y/2) + 5 && orb_record[i].y > (SIZE_Y/2) - 10)) {
                orb_record[i].b = true;
                stdio_mutex.lock();
                uLCD.filled_circle(SIZE_X / 2, SIZE_Y / 2, 8, BLACK);
                stdio_mutex.unlock();
            }
            
            if (orb_record[i].y <= -5) {
                orb_record[i].y = SIZE_Y;
                orb_record[i].status = ORB_DEACTIVE;
            }
        }
    }
}*/