Faizan and Pages fun little game
Dependencies: 4DGL-uLCD-SE mbed SDFileSystem wave_player
Diff: food.cpp
- Revision:
- 2:4c5f409d6bb8
- Parent:
- 1:9eeeb0d8f036
- Child:
- 7:7cbff8cf583b
- Child:
- 8:b2df3588d8e0
--- a/food.cpp Sat Oct 29 19:35:46 2016 +0000 +++ b/food.cpp Mon Oct 31 00:59:12 2016 +0000 @@ -14,8 +14,18 @@ #define MAX(i) std::max(i,0) #define MIN(i) std::min(i,128) -#define MAROON 0x8b0000; -#define DARKBROWN 0x654321; +#define MAROON 0x8b0000 +#define DARKBROWN 0x654321 +#define YELLOW 0xffff00 +#define PURPLE 0x551a8b +#define BROWN 0xf4a460 + +Food::Food(uLCD_4DGL * uLCD) { + lcd = uLCD; + typeOfFood = BREAD; + isBad = false; + // leave x and y uninitialized? +} Food::Food(int type, int location, uLCD_4DGL * uLCD) { lcd = uLCD; @@ -23,14 +33,14 @@ isBad = (type == BADLETTUCE || type == BADTOMATO || type == BADCHEESE) ? true : false; x = location; - y = -3; + y = 1; } void Food::draw() { switch (typeOfFood) { case LETTUCE: drawLettuce(GREEN); break; - case TOMATO: drawTomato(RED): + case TOMATO: drawTomato(RED); break; case CHEESE: drawCheese(YELLOW); break; @@ -42,40 +52,48 @@ break; case BADCHEESE: drawCheese(PURPLE); break; - case - default: } } void Food::drawLettuce(int color) { - lcd.filled_rectangle(MAX(x), MAX(y), MIN(x + 7), MIN(y + 3), color); - lcd.pixel(x + 1, y, BLACK); - lcd.pixel(x + 3, y, BLACK); - lcd.pixel(x + 5, y, BLACK); - lcd.pixel(x, y + 3, BLACK); - lcd.pixel(x + 6, y + 3, BLACK); - lcd.pixel(x + 7, y + 3, BLACK); + lcd->filled_rectangle(x, y, x + 7, y + 3, color); + lcd->pixel(x + 1, y, BLACK); + lcd->pixel(x + 3, y, BLACK); + lcd->pixel(x + 5, y, BLACK); + lcd->pixel(x, y + 3, BLACK); + lcd->pixel(x + 6, y + 3, BLACK); + lcd->pixel(x + 7, y + 3, BLACK); } void Food::drawTomato(int color) { - lcd.filled_rectangle(MAX(x + 1), MAX(y), MIN(x + 2), MIN(y + 7), color); - lcd.line(x + 2, y, x + 5, y, MAROON); - lcd.line(x + 2, y + 3, x + 5, y + 3, color); - lcd.line(x, y + 1, x + 1, y + 1, MAROON); - lcd.line(x, y + 6, x + 1, y + 7, MAROON); + lcd->filled_rectangle(MAX(x + 1), MAX(y), MIN(x + 2), MIN(y + 7), color); + lcd->line(x + 2, y, x + 5, y, 0x8b0000); + lcd->line(x + 2, y + 3, x + 5, y + 3, color); + lcd->line(x, y + 1, x + 1, y + 1, MAROON); + lcd->line(x, y + 6, x + 1, y + 7, MAROON); } void Food::drawCheese(int color) { - lcd.filled_rectangle(MAX(x), MAX(y), MIN(x + 7), MIN(y + 3), color); - lcd.pixel(x, y + 7, WHITE); - lcd.pixel(x + 1, y + 5, WHITE); - lcd.filled_rectangle(x + 2, y + 2, x + 3, y + 3, WHITE); + lcd->filled_rectangle(MAX(x), MAX(y), MIN(x + 7), MIN(y + 3), color); + lcd->pixel(x, y + 7, WHITE); + lcd->pixel(x + 1, y + 5, WHITE); + lcd->filled_rectangle(x + 2, y + 2, x + 3, y + 3, WHITE); } void Food::drawBread() { - lcd.filled_rectangle(MAX(x), MAX(y), MIN(x + 7), MIN(y + 3), BROWN); - lcd.pixel(x, y, BLACK); - lcd.pixel(x, y + 3, BLACK); - lcd.pixel(x, y + 1, DARKBROWN); - lcd.pixel(x, y + 2, DARKBROWN); + lcd->filled_rectangle(MAX(x), MAX(y), MIN(x + 7), MIN(y + 3), BROWN); + lcd->pixel(x, y, BLACK); + lcd->pixel(x, y + 3, BLACK); + lcd->pixel(x, y + 1, DARKBROWN); + lcd->pixel(x, y + 2, DARKBROWN); +} + +void Food::erase() { + lcd->filled_rectangle(MAX(x), MAX(y), MIN(x + 7), MIN(y + 3), BLACK); +} + +void Food::fall() { + erase(); + y = y + 1; + draw(); } \ No newline at end of file