Dance Dance Revolution program for main mbed
Dependencies: 4DGL-uLCD-SE SDFileSystem mbed-rtos mbed wave_player
arrows.h@0:8a02ac09eae0, 2016-04-29 (annotated)
- Committer:
- wliu88
- Date:
- Fri Apr 29 02:04:07 2016 +0000
- Revision:
- 0:8a02ac09eae0
new
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
wliu88 | 0:8a02ac09eae0 | 1 | #ifndef ARROWS_H |
wliu88 | 0:8a02ac09eae0 | 2 | #define ARROWS_H |
wliu88 | 0:8a02ac09eae0 | 3 | |
wliu88 | 0:8a02ac09eae0 | 4 | |
wliu88 | 0:8a02ac09eae0 | 5 | #include "mbed.h" |
wliu88 | 0:8a02ac09eae0 | 6 | #include "globals.h" |
wliu88 | 0:8a02ac09eae0 | 7 | //arrow.h: file responsible for generating arrow |
wliu88 | 0:8a02ac09eae0 | 8 | //LEFT = 0 |
wliu88 | 0:8a02ac09eae0 | 9 | //UP = 1 |
wliu88 | 0:8a02ac09eae0 | 10 | //DOWN = 2 |
wliu88 | 0:8a02ac09eae0 | 11 | //RIGHT = 3 |
wliu88 | 0:8a02ac09eae0 | 12 | //INVALID = -1 |
wliu88 | 0:8a02ac09eae0 | 13 | |
wliu88 | 0:8a02ac09eae0 | 14 | class Arrow { |
wliu88 | 0:8a02ac09eae0 | 15 | public: |
wliu88 | 0:8a02ac09eae0 | 16 | int active; |
wliu88 | 0:8a02ac09eae0 | 17 | int type; |
wliu88 | 0:8a02ac09eae0 | 18 | int locx1; |
wliu88 | 0:8a02ac09eae0 | 19 | int locx2; |
wliu88 | 0:8a02ac09eae0 | 20 | int locx3; |
wliu88 | 0:8a02ac09eae0 | 21 | int locy1; |
wliu88 | 0:8a02ac09eae0 | 22 | int locy2; |
wliu88 | 0:8a02ac09eae0 | 23 | int locy3; |
wliu88 | 0:8a02ac09eae0 | 24 | int currx; |
wliu88 | 0:8a02ac09eae0 | 25 | int curry; |
wliu88 | 0:8a02ac09eae0 | 26 | double delay; |
wliu88 | 0:8a02ac09eae0 | 27 | Arrow(){} |
wliu88 | 0:8a02ac09eae0 | 28 | Arrow(int dir) { |
wliu88 | 0:8a02ac09eae0 | 29 | type = dir; |
wliu88 | 0:8a02ac09eae0 | 30 | if(dir != -1){ active = 0; } |
wliu88 | 0:8a02ac09eae0 | 31 | else {active = 1;} |
wliu88 | 0:8a02ac09eae0 | 32 | } |
wliu88 | 0:8a02ac09eae0 | 33 | Arrow(int dir, double arg_delay){ |
wliu88 | 0:8a02ac09eae0 | 34 | type = dir; |
wliu88 | 0:8a02ac09eae0 | 35 | if(dir != -1){active =0;} |
wliu88 | 0:8a02ac09eae0 | 36 | else {active = 1;} |
wliu88 | 0:8a02ac09eae0 | 37 | delay = arg_delay; |
wliu88 | 0:8a02ac09eae0 | 38 | } |
wliu88 | 0:8a02ac09eae0 | 39 | double getDelay(){ |
wliu88 | 0:8a02ac09eae0 | 40 | return delay; |
wliu88 | 0:8a02ac09eae0 | 41 | } |
wliu88 | 0:8a02ac09eae0 | 42 | void setType(int dir) { |
wliu88 | 0:8a02ac09eae0 | 43 | type = dir; |
wliu88 | 0:8a02ac09eae0 | 44 | } |
wliu88 | 0:8a02ac09eae0 | 45 | int getType(){ |
wliu88 | 0:8a02ac09eae0 | 46 | return type; |
wliu88 | 0:8a02ac09eae0 | 47 | } |
wliu88 | 0:8a02ac09eae0 | 48 | int getActive(){ |
wliu88 | 0:8a02ac09eae0 | 49 | return active; |
wliu88 | 0:8a02ac09eae0 | 50 | } |
wliu88 | 0:8a02ac09eae0 | 51 | void setActive(int activepassive){ |
wliu88 | 0:8a02ac09eae0 | 52 | active = activepassive; |
wliu88 | 0:8a02ac09eae0 | 53 | } |
wliu88 | 0:8a02ac09eae0 | 54 | void init(int screenNum){ |
wliu88 | 0:8a02ac09eae0 | 55 | if(active){ |
wliu88 | 0:8a02ac09eae0 | 56 | switch(type){ |
wliu88 | 0:8a02ac09eae0 | 57 | case 0: |
wliu88 | 0:8a02ac09eae0 | 58 | locx1 = 10; |
wliu88 | 0:8a02ac09eae0 | 59 | locy1 = 123; |
wliu88 | 0:8a02ac09eae0 | 60 | locx2 = 20; |
wliu88 | 0:8a02ac09eae0 | 61 | locy2 = 119; |
wliu88 | 0:8a02ac09eae0 | 62 | locx3 = 20; |
wliu88 | 0:8a02ac09eae0 | 63 | locy3 = 127; |
wliu88 | 0:8a02ac09eae0 | 64 | currx = 15; |
wliu88 | 0:8a02ac09eae0 | 65 | curry = 123; |
wliu88 | 0:8a02ac09eae0 | 66 | break; |
wliu88 | 0:8a02ac09eae0 | 67 | case 3: |
wliu88 | 0:8a02ac09eae0 | 68 | locx1 = 106; |
wliu88 | 0:8a02ac09eae0 | 69 | locy1 = 119; |
wliu88 | 0:8a02ac09eae0 | 70 | locx2 = 106; |
wliu88 | 0:8a02ac09eae0 | 71 | locy2 = 127; |
wliu88 | 0:8a02ac09eae0 | 72 | locx3 = 116; |
wliu88 | 0:8a02ac09eae0 | 73 | locy3 = 123; |
wliu88 | 0:8a02ac09eae0 | 74 | currx = 111; |
wliu88 | 0:8a02ac09eae0 | 75 | curry = 123; |
wliu88 | 0:8a02ac09eae0 | 76 | break; |
wliu88 | 0:8a02ac09eae0 | 77 | case 1: |
wliu88 | 0:8a02ac09eae0 | 78 | locx1 = 42; |
wliu88 | 0:8a02ac09eae0 | 79 | locy1 = 127; |
wliu88 | 0:8a02ac09eae0 | 80 | locx2 = 47; |
wliu88 | 0:8a02ac09eae0 | 81 | locy2 = 119; |
wliu88 | 0:8a02ac09eae0 | 82 | locx3 = 52; |
wliu88 | 0:8a02ac09eae0 | 83 | locy3 = 127; |
wliu88 | 0:8a02ac09eae0 | 84 | currx = 47; |
wliu88 | 0:8a02ac09eae0 | 85 | curry = 123; |
wliu88 | 0:8a02ac09eae0 | 86 | break; |
wliu88 | 0:8a02ac09eae0 | 87 | case 2: |
wliu88 | 0:8a02ac09eae0 | 88 | locx1 = 74; |
wliu88 | 0:8a02ac09eae0 | 89 | locy1 = 119; |
wliu88 | 0:8a02ac09eae0 | 90 | locx2 = 79; |
wliu88 | 0:8a02ac09eae0 | 91 | locy2 = 127; |
wliu88 | 0:8a02ac09eae0 | 92 | locx3 = 84; |
wliu88 | 0:8a02ac09eae0 | 93 | locy3 = 119; |
wliu88 | 0:8a02ac09eae0 | 94 | currx = 79; |
wliu88 | 0:8a02ac09eae0 | 95 | curry = 123; |
wliu88 | 0:8a02ac09eae0 | 96 | break; |
wliu88 | 0:8a02ac09eae0 | 97 | default: |
wliu88 | 0:8a02ac09eae0 | 98 | //arrow has not been released/dead |
wliu88 | 0:8a02ac09eae0 | 99 | } |
wliu88 | 0:8a02ac09eae0 | 100 | if(type != -1){ |
wliu88 | 0:8a02ac09eae0 | 101 | if(screenNum==0){ |
wliu88 | 0:8a02ac09eae0 | 102 | uLCD.triangle(locx1, locy1, locx2, locy2, locx3, locy3, 0x0000FF); |
wliu88 | 0:8a02ac09eae0 | 103 | } |
wliu88 | 0:8a02ac09eae0 | 104 | else if (screenNum == 1) { |
wliu88 | 0:8a02ac09eae0 | 105 | uLCD2.triangle(locx1, locy1, locx2, locy2, locx3, locy3, 0x0000FF); |
wliu88 | 0:8a02ac09eae0 | 106 | } |
wliu88 | 0:8a02ac09eae0 | 107 | else { |
wliu88 | 0:8a02ac09eae0 | 108 | uLCD.triangle(locx1, locy1, locx2, locy2, locx3, locy3, 0x0000FF); |
wliu88 | 0:8a02ac09eae0 | 109 | uLCD2.triangle(locx1, locy1, locx2, locy2, locx3, locy3, 0x0000FF); |
wliu88 | 0:8a02ac09eae0 | 110 | } |
wliu88 | 0:8a02ac09eae0 | 111 | } |
wliu88 | 0:8a02ac09eae0 | 112 | } |
wliu88 | 0:8a02ac09eae0 | 113 | } |
wliu88 | 0:8a02ac09eae0 | 114 | |
wliu88 | 0:8a02ac09eae0 | 115 | void init2(){ |
wliu88 | 0:8a02ac09eae0 | 116 | if(active){ |
wliu88 | 0:8a02ac09eae0 | 117 | switch(type){ |
wliu88 | 0:8a02ac09eae0 | 118 | case 0: |
wliu88 | 0:8a02ac09eae0 | 119 | locx1 = 10; |
wliu88 | 0:8a02ac09eae0 | 120 | locy1 = 123; |
wliu88 | 0:8a02ac09eae0 | 121 | locx2 = 20; |
wliu88 | 0:8a02ac09eae0 | 122 | locy2 = 119; |
wliu88 | 0:8a02ac09eae0 | 123 | locx3 = 20; |
wliu88 | 0:8a02ac09eae0 | 124 | locy3 = 127; |
wliu88 | 0:8a02ac09eae0 | 125 | currx = 15; |
wliu88 | 0:8a02ac09eae0 | 126 | curry = 123; |
wliu88 | 0:8a02ac09eae0 | 127 | break; |
wliu88 | 0:8a02ac09eae0 | 128 | case 3: |
wliu88 | 0:8a02ac09eae0 | 129 | locx1 = 106; |
wliu88 | 0:8a02ac09eae0 | 130 | locy1 = 119; |
wliu88 | 0:8a02ac09eae0 | 131 | locx2 = 106; |
wliu88 | 0:8a02ac09eae0 | 132 | locy2 = 127; |
wliu88 | 0:8a02ac09eae0 | 133 | locx3 = 116; |
wliu88 | 0:8a02ac09eae0 | 134 | locy3 = 123; |
wliu88 | 0:8a02ac09eae0 | 135 | currx = 111; |
wliu88 | 0:8a02ac09eae0 | 136 | curry = 123; |
wliu88 | 0:8a02ac09eae0 | 137 | break; |
wliu88 | 0:8a02ac09eae0 | 138 | case 1: |
wliu88 | 0:8a02ac09eae0 | 139 | locx1 = 42; |
wliu88 | 0:8a02ac09eae0 | 140 | locy1 = 127; |
wliu88 | 0:8a02ac09eae0 | 141 | locx2 = 47; |
wliu88 | 0:8a02ac09eae0 | 142 | locy2 = 119; |
wliu88 | 0:8a02ac09eae0 | 143 | locx3 = 52; |
wliu88 | 0:8a02ac09eae0 | 144 | locy3 = 127; |
wliu88 | 0:8a02ac09eae0 | 145 | currx = 47; |
wliu88 | 0:8a02ac09eae0 | 146 | curry = 123; |
wliu88 | 0:8a02ac09eae0 | 147 | break; |
wliu88 | 0:8a02ac09eae0 | 148 | case 2: |
wliu88 | 0:8a02ac09eae0 | 149 | locx1 = 74; |
wliu88 | 0:8a02ac09eae0 | 150 | locy1 = 119; |
wliu88 | 0:8a02ac09eae0 | 151 | locx2 = 79; |
wliu88 | 0:8a02ac09eae0 | 152 | locy2 = 127; |
wliu88 | 0:8a02ac09eae0 | 153 | locx3 = 84; |
wliu88 | 0:8a02ac09eae0 | 154 | locy3 = 119; |
wliu88 | 0:8a02ac09eae0 | 155 | currx = 79; |
wliu88 | 0:8a02ac09eae0 | 156 | curry = 123; |
wliu88 | 0:8a02ac09eae0 | 157 | break; |
wliu88 | 0:8a02ac09eae0 | 158 | default: |
wliu88 | 0:8a02ac09eae0 | 159 | //arrow has not been released/dead |
wliu88 | 0:8a02ac09eae0 | 160 | } |
wliu88 | 0:8a02ac09eae0 | 161 | if(type != -1){ |
wliu88 | 0:8a02ac09eae0 | 162 | uLCD2.triangle(locx1, locy1, locx2, locy2, locx3, locy3, 0x0000FF); |
wliu88 | 0:8a02ac09eae0 | 163 | } |
wliu88 | 0:8a02ac09eae0 | 164 | } |
wliu88 | 0:8a02ac09eae0 | 165 | } |
wliu88 | 0:8a02ac09eae0 | 166 | |
wliu88 | 0:8a02ac09eae0 | 167 | int update(int screenNum){ |
wliu88 | 0:8a02ac09eae0 | 168 | switch(screenNum){ |
wliu88 | 0:8a02ac09eae0 | 169 | case 0: |
wliu88 | 0:8a02ac09eae0 | 170 | if(type != -1){ |
wliu88 | 0:8a02ac09eae0 | 171 | uLCD.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000); |
wliu88 | 0:8a02ac09eae0 | 172 | locy1 -= 9; |
wliu88 | 0:8a02ac09eae0 | 173 | locy2 -= 9; |
wliu88 | 0:8a02ac09eae0 | 174 | locy3 -= 9; |
wliu88 | 0:8a02ac09eae0 | 175 | //currx -= 8; |
wliu88 | 0:8a02ac09eae0 | 176 | curry -= 9; |
wliu88 | 0:8a02ac09eae0 | 177 | uLCD.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x0000FF); |
wliu88 | 0:8a02ac09eae0 | 178 | if(curry <= 5){ |
wliu88 | 0:8a02ac09eae0 | 179 | uLCD.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000); |
wliu88 | 0:8a02ac09eae0 | 180 | active = 0; |
wliu88 | 0:8a02ac09eae0 | 181 | return 1; |
wliu88 | 0:8a02ac09eae0 | 182 | } |
wliu88 | 0:8a02ac09eae0 | 183 | else{ |
wliu88 | 0:8a02ac09eae0 | 184 | return 0; |
wliu88 | 0:8a02ac09eae0 | 185 | } |
wliu88 | 0:8a02ac09eae0 | 186 | } |
wliu88 | 0:8a02ac09eae0 | 187 | else{return 1;} |
wliu88 | 0:8a02ac09eae0 | 188 | break; |
wliu88 | 0:8a02ac09eae0 | 189 | case 1: |
wliu88 | 0:8a02ac09eae0 | 190 | if(type != -1){ |
wliu88 | 0:8a02ac09eae0 | 191 | uLCD2.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000); |
wliu88 | 0:8a02ac09eae0 | 192 | locy1 -= 9; |
wliu88 | 0:8a02ac09eae0 | 193 | locy2 -= 9; |
wliu88 | 0:8a02ac09eae0 | 194 | locy3 -= 9; |
wliu88 | 0:8a02ac09eae0 | 195 | //currx -= 8; |
wliu88 | 0:8a02ac09eae0 | 196 | curry -= 9; |
wliu88 | 0:8a02ac09eae0 | 197 | uLCD2.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x0000FF); |
wliu88 | 0:8a02ac09eae0 | 198 | if(curry <= 5){ |
wliu88 | 0:8a02ac09eae0 | 199 | uLCD2.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000); |
wliu88 | 0:8a02ac09eae0 | 200 | active = 0; |
wliu88 | 0:8a02ac09eae0 | 201 | return 1; |
wliu88 | 0:8a02ac09eae0 | 202 | } |
wliu88 | 0:8a02ac09eae0 | 203 | else{ |
wliu88 | 0:8a02ac09eae0 | 204 | return 0; |
wliu88 | 0:8a02ac09eae0 | 205 | } |
wliu88 | 0:8a02ac09eae0 | 206 | } |
wliu88 | 0:8a02ac09eae0 | 207 | else{return 1;} |
wliu88 | 0:8a02ac09eae0 | 208 | break; |
wliu88 | 0:8a02ac09eae0 | 209 | default: |
wliu88 | 0:8a02ac09eae0 | 210 | if(type != -1){ |
wliu88 | 0:8a02ac09eae0 | 211 | uLCD.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000); |
wliu88 | 0:8a02ac09eae0 | 212 | uLCD2.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000); |
wliu88 | 0:8a02ac09eae0 | 213 | locy1 -= 9; |
wliu88 | 0:8a02ac09eae0 | 214 | locy2 -= 9; |
wliu88 | 0:8a02ac09eae0 | 215 | locy3 -= 9; |
wliu88 | 0:8a02ac09eae0 | 216 | //currx -= 8; |
wliu88 | 0:8a02ac09eae0 | 217 | curry -= 9; |
wliu88 | 0:8a02ac09eae0 | 218 | uLCD.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x0000FF); |
wliu88 | 0:8a02ac09eae0 | 219 | uLCD2.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x0000FF); |
wliu88 | 0:8a02ac09eae0 | 220 | if(curry <= 5){ |
wliu88 | 0:8a02ac09eae0 | 221 | uLCD.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000); |
wliu88 | 0:8a02ac09eae0 | 222 | uLCD2.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000); |
wliu88 | 0:8a02ac09eae0 | 223 | active = 0; |
wliu88 | 0:8a02ac09eae0 | 224 | return 1; |
wliu88 | 0:8a02ac09eae0 | 225 | } |
wliu88 | 0:8a02ac09eae0 | 226 | else{ |
wliu88 | 0:8a02ac09eae0 | 227 | return 0; |
wliu88 | 0:8a02ac09eae0 | 228 | } |
wliu88 | 0:8a02ac09eae0 | 229 | } |
wliu88 | 0:8a02ac09eae0 | 230 | else{return 1;} |
wliu88 | 0:8a02ac09eae0 | 231 | } |
wliu88 | 0:8a02ac09eae0 | 232 | } |
wliu88 | 0:8a02ac09eae0 | 233 | |
wliu88 | 0:8a02ac09eae0 | 234 | int update2(){ |
wliu88 | 0:8a02ac09eae0 | 235 | if(type != -1){ |
wliu88 | 0:8a02ac09eae0 | 236 | uLCD2.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000); |
wliu88 | 0:8a02ac09eae0 | 237 | locy1 -= 9; |
wliu88 | 0:8a02ac09eae0 | 238 | locy2 -= 9; |
wliu88 | 0:8a02ac09eae0 | 239 | locy3 -= 9; |
wliu88 | 0:8a02ac09eae0 | 240 | //currx -= 8; |
wliu88 | 0:8a02ac09eae0 | 241 | curry -= 9; |
wliu88 | 0:8a02ac09eae0 | 242 | uLCD2.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x0000FF); |
wliu88 | 0:8a02ac09eae0 | 243 | if(curry <= 5){ |
wliu88 | 0:8a02ac09eae0 | 244 | uLCD2.triangle(locx1,locy1,locx2,locy2,locx3,locy3,0x000000); |
wliu88 | 0:8a02ac09eae0 | 245 | active = 0; |
wliu88 | 0:8a02ac09eae0 | 246 | return 1; |
wliu88 | 0:8a02ac09eae0 | 247 | } |
wliu88 | 0:8a02ac09eae0 | 248 | else{ |
wliu88 | 0:8a02ac09eae0 | 249 | return 0; |
wliu88 | 0:8a02ac09eae0 | 250 | } |
wliu88 | 0:8a02ac09eae0 | 251 | } |
wliu88 | 0:8a02ac09eae0 | 252 | else{return 1;} |
wliu88 | 0:8a02ac09eae0 | 253 | } |
wliu88 | 0:8a02ac09eae0 | 254 | }; |
wliu88 | 0:8a02ac09eae0 | 255 | |
wliu88 | 0:8a02ac09eae0 | 256 | #endif |