Dance Dance Revolution program for main mbed
Dependencies: 4DGL-uLCD-SE SDFileSystem mbed-rtos mbed wave_player
arrows.h
- Committer:
- wliu88
- Date:
- 2016-04-29
- Revision:
- 0:8a02ac09eae0
File content as of revision 0:8a02ac09eae0:
#ifndef ARROWS_H
#define ARROWS_H
#include "mbed.h"
#include "globals.h"
//arrow.h: file responsible for generating arrow
//LEFT = 0
//UP = 1
//DOWN = 2
//RIGHT = 3
//INVALID = -1
class Arrow {
public:
int active;
int type;
int locx1;
int locx2;
int locx3;
int locy1;
int locy2;
int locy3;
int currx;
int curry;
double delay;
Arrow(){}
Arrow(int dir) {
type = dir;
if(dir != -1){ active = 0; }
else {active = 1;}
}
Arrow(int dir, double arg_delay){
type = dir;
if(dir != -1){active =0;}
else {active = 1;}
delay = arg_delay;
}
double getDelay(){
return delay;
}
void setType(int dir) {
type = dir;
}
int getType(){
return type;
}
int getActive(){
return active;
}
void setActive(int activepassive){
active = activepassive;
}
void init(int screenNum){
if(active){
switch(type){
case 0:
locx1 = 10;
locy1 = 123;
locx2 = 20;
locy2 = 119;
locx3 = 20;
locy3 = 127;
currx = 15;
curry = 123;
break;
case 3:
locx1 = 106;
locy1 = 119;
locx2 = 106;
locy2 = 127;
locx3 = 116;
locy3 = 123;
currx = 111;
curry = 123;
break;
case 1:
locx1 = 42;
locy1 = 127;
locx2 = 47;
locy2 = 119;
locx3 = 52;
locy3 = 127;
currx = 47;
curry = 123;
break;
case 2:
locx1 = 74;
locy1 = 119;
locx2 = 79;
locy2 = 127;
locx3 = 84;
locy3 = 119;
currx = 79;
curry = 123;
break;
default:
//arrow has not been released/dead
}
if(type != -1){
if(screenNum==0){
uLCD.triangle(locx1, locy1, locx2, locy2, locx3, locy3, 0x0000FF);
}
else if (screenNum == 1) {
uLCD2.triangle(locx1, locy1, locx2, locy2, locx3, locy3, 0x0000FF);
}
else {
uLCD.triangle(locx1, locy1, locx2, locy2, locx3, locy3, 0x0000FF);
uLCD2.triangle(locx1, locy1, locx2, locy2, locx3, locy3, 0x0000FF);
}
}
}
}
void init2(){
if(active){
switch(type){
case 0:
locx1 = 10;
locy1 = 123;
locx2 = 20;
locy2 = 119;
locx3 = 20;
locy3 = 127;
currx = 15;
curry = 123;
break;
case 3:
locx1 = 106;
locy1 = 119;
locx2 = 106;
locy2 = 127;
locx3 = 116;
locy3 = 123;
currx = 111;
curry = 123;
break;
case 1:
locx1 = 42;
locy1 = 127;
locx2 = 47;
locy2 = 119;
locx3 = 52;
locy3 = 127;
currx = 47;
curry = 123;
break;
case 2:
locx1 = 74;
locy1 = 119;
locx2 = 79;
locy2 = 127;
locx3 = 84;
locy3 = 119;
currx = 79;
curry = 123;
break;
default:
//arrow has not been released/dead
}
if(type != -1){
uLCD2.triangle(locx1, locy1, locx2, locy2, locx3, locy3, 0x0000FF);
}
}
}
int update(int screenNum){
switch(screenNum){
case 0:
if(type != -1){
uLCD.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000);
locy1 -= 9;
locy2 -= 9;
locy3 -= 9;
//currx -= 8;
curry -= 9;
uLCD.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x0000FF);
if(curry <= 5){
uLCD.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000);
active = 0;
return 1;
}
else{
return 0;
}
}
else{return 1;}
break;
case 1:
if(type != -1){
uLCD2.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000);
locy1 -= 9;
locy2 -= 9;
locy3 -= 9;
//currx -= 8;
curry -= 9;
uLCD2.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x0000FF);
if(curry <= 5){
uLCD2.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000);
active = 0;
return 1;
}
else{
return 0;
}
}
else{return 1;}
break;
default:
if(type != -1){
uLCD.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000);
uLCD2.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000);
locy1 -= 9;
locy2 -= 9;
locy3 -= 9;
//currx -= 8;
curry -= 9;
uLCD.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x0000FF);
uLCD2.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x0000FF);
if(curry <= 5){
uLCD.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000);
uLCD2.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000);
active = 0;
return 1;
}
else{
return 0;
}
}
else{return 1;}
}
}
int update2(){
if(type != -1){
uLCD2.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000);
locy1 -= 9;
locy2 -= 9;
locy3 -= 9;
//currx -= 8;
curry -= 9;
uLCD2.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x0000FF);
if(curry <= 5){
uLCD2.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000);
active = 0;
return 1;
}
else{
return 0;
}
}
else{return 1;}
}
};
#endif