mbed1

Dependencies:   4DGL SDFileSystem mbed-rtos mbed

Fork of drums by Yusuf Kuris

Committer:
ckabuloglu
Date:
Sun Apr 30 00:55:41 2017 +0000
Revision:
3:54d4226a7d5e
mbed1

Who changed what in which revision?

UserRevisionLine numberNew 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 }