Faizan and Pages fun little game
Dependencies: 4DGL-uLCD-SE mbed SDFileSystem wave_player
food.cpp
- Committer:
- fkhan39
- Date:
- 2016-10-29
- Revision:
- 1:9eeeb0d8f036
- Parent:
- 0:de9ffb858be9
- Child:
- 2:4c5f409d6bb8
File content as of revision 1:9eeeb0d8f036:
#include "mbed.h" #include "uLCD_4DGL.h" #include "food.h" #include <algorithm> #define BREAD 1 #define LETTUCE 2 #define CHEESE 3 #define TOMATO 4 #define BADLETTUCE 5 #define BADCHEESE 6 #define BADTOMATO 7 #define MAX(i) std::max(i,0) #define MIN(i) std::min(i,128) #define MAROON 0x8b0000; #define DARKBROWN 0x654321; Food::Food(int type, int location, uLCD_4DGL * uLCD) { lcd = uLCD; typeOfFood = type; isBad = (type == BADLETTUCE || type == BADTOMATO || type == BADCHEESE) ? true : false; x = location; y = -3; } void Food::draw() { switch (typeOfFood) { case LETTUCE: drawLettuce(GREEN); break; case TOMATO: drawTomato(RED): break; case CHEESE: drawCheese(YELLOW); break; case BREAD: drawBread(); break; case BADLETTUCE: drawLettuce(PURPLE); break; case BADTOMATO: drawTomato(PURPLE); 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); } 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); } 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); } 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); }