drum
Dependencies: 4DGL SDFileSystem mbed-rtos mbed
Fork of drums by
Note/note.cpp@3:54d4226a7d5e, 2017-04-30 (annotated)
- Committer:
- ckabuloglu
- Date:
- Sun Apr 30 00:55:41 2017 +0000
- Revision:
- 3:54d4226a7d5e
mbed1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ckabuloglu | 3:54d4226a7d5e | 1 | #include "mbed.h" |
ckabuloglu | 3:54d4226a7d5e | 2 | #include "note.h" |
ckabuloglu | 3:54d4226a7d5e | 3 | #include "TFT_4DGL.h" |
ckabuloglu | 3:54d4226a7d5e | 4 | |
ckabuloglu | 3:54d4226a7d5e | 5 | #define RATIO 0.66 |
ckabuloglu | 3:54d4226a7d5e | 6 | #define minY 130 |
ckabuloglu | 3:54d4226a7d5e | 7 | #define maxY 430 |
ckabuloglu | 3:54d4226a7d5e | 8 | |
ckabuloglu | 3:54d4226a7d5e | 9 | // extern Serial pc; |
ckabuloglu | 3:54d4226a7d5e | 10 | extern TFT_4DGL screen; |
ckabuloglu | 3:54d4226a7d5e | 11 | |
ckabuloglu | 3:54d4226a7d5e | 12 | // Initate an empty note |
ckabuloglu | 3:54d4226a7d5e | 13 | Note::Note() { |
ckabuloglu | 3:54d4226a7d5e | 14 | // Do nothing |
ckabuloglu | 3:54d4226a7d5e | 15 | } |
ckabuloglu | 3:54d4226a7d5e | 16 | |
ckabuloglu | 3:54d4226a7d5e | 17 | // Initiate the note object with a certain type |
ckabuloglu | 3:54d4226a7d5e | 18 | Note::Note(int t) { |
ckabuloglu | 3:54d4226a7d5e | 19 | type = t; |
ckabuloglu | 3:54d4226a7d5e | 20 | if (t == 1) { |
ckabuloglu | 3:54d4226a7d5e | 21 | x = 276.0; |
ckabuloglu | 3:54d4226a7d5e | 22 | color = 0xFF0000; |
ckabuloglu | 3:54d4226a7d5e | 23 | } else if (t == 2) { |
ckabuloglu | 3:54d4226a7d5e | 24 | x = 314.0; |
ckabuloglu | 3:54d4226a7d5e | 25 | color = 0x00FF00; |
ckabuloglu | 3:54d4226a7d5e | 26 | } else if (t == 3) { |
ckabuloglu | 3:54d4226a7d5e | 27 | x = 358.0; |
ckabuloglu | 3:54d4226a7d5e | 28 | color = 0x0000FF; |
ckabuloglu | 3:54d4226a7d5e | 29 | } |
ckabuloglu | 3:54d4226a7d5e | 30 | y = 130.0; |
ckabuloglu | 3:54d4226a7d5e | 31 | w = 12.0; |
ckabuloglu | 3:54d4226a7d5e | 32 | h = w * RATIO; |
ckabuloglu | 3:54d4226a7d5e | 33 | speed = 38.0; |
ckabuloglu | 3:54d4226a7d5e | 34 | consumed = 0; |
ckabuloglu | 3:54d4226a7d5e | 35 | } |
ckabuloglu | 3:54d4226a7d5e | 36 | |
ckabuloglu | 3:54d4226a7d5e | 37 | Note::~Note() { |
ckabuloglu | 3:54d4226a7d5e | 38 | // deletes the node |
ckabuloglu | 3:54d4226a7d5e | 39 | } |
ckabuloglu | 3:54d4226a7d5e | 40 | |
ckabuloglu | 3:54d4226a7d5e | 41 | void Note::updatePosition() { |
ckabuloglu | 3:54d4226a7d5e | 42 | y += speed; |
ckabuloglu | 3:54d4226a7d5e | 43 | if (type == 1) { |
ckabuloglu | 3:54d4226a7d5e | 44 | x += -0.14 * speed; |
ckabuloglu | 3:54d4226a7d5e | 45 | } else if (type == 3) { |
ckabuloglu | 3:54d4226a7d5e | 46 | x += 0.14 * speed; |
ckabuloglu | 3:54d4226a7d5e | 47 | } |
ckabuloglu | 3:54d4226a7d5e | 48 | w = 12.0 * (1 + (y - 130.0) / 300.0); |
ckabuloglu | 3:54d4226a7d5e | 49 | h = w * RATIO; |
ckabuloglu | 3:54d4226a7d5e | 50 | } |
ckabuloglu | 3:54d4226a7d5e | 51 | |
ckabuloglu | 3:54d4226a7d5e | 52 | void Note::drawNote() { |
ckabuloglu | 3:54d4226a7d5e | 53 | float oldX = x; |
ckabuloglu | 3:54d4226a7d5e | 54 | float oldY = y; |
ckabuloglu | 3:54d4226a7d5e | 55 | float oldW = w; |
ckabuloglu | 3:54d4226a7d5e | 56 | float oldH = h; |
ckabuloglu | 3:54d4226a7d5e | 57 | updatePosition(); |
ckabuloglu | 3:54d4226a7d5e | 58 | screen.ellipse((int)oldX, (int)oldY, (int)oldW, (int)oldH, 0xD38A41); |
ckabuloglu | 3:54d4226a7d5e | 59 | if (y > 420) { |
ckabuloglu | 3:54d4226a7d5e | 60 | consumed = 1; |
ckabuloglu | 3:54d4226a7d5e | 61 | // delete this; |
ckabuloglu | 3:54d4226a7d5e | 62 | return; |
ckabuloglu | 3:54d4226a7d5e | 63 | } |
ckabuloglu | 3:54d4226a7d5e | 64 | screen.ellipse((int)x, (int)y, (int)w, (int)h, color); |
ckabuloglu | 3:54d4226a7d5e | 65 | } |