Faizan and Pages fun little game
Dependencies: 4DGL-uLCD-SE mbed SDFileSystem wave_player
stack.cpp
- Committer:
- fkhan39
- Date:
- 2016-10-31
- Revision:
- 3:058e10b8ecf6
- Parent:
- 2:4c5f409d6bb8
- Child:
- 4:c00da0b158c4
File content as of revision 3:058e10b8ecf6:
#include "mbed.h" #include "uLCD_4DGL.h" #include "stack.h" #include "food.h" #include <algorithm> #include <vector> #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) Stack::Stack(int location, uLCD_4DGL * uLCD) { x = location; Food bread(uLCD); stackOfFood.push_back(bread); lcd = uLCD; top = 4; } void Stack::move(int dx) { // constrain if (dx < 0) x = MAX(x + dx); else x = MIN(x + dx); } int Stack::size() { return stackOfFood.size(); } void Stack::clear() { erase(); stackOfFood.clear(); Food bread(lcd); stackOfFood.push_back(bread); draw(); } void Stack::erase() { // ERASE lcd->filled_rectangle(x, 4, x + 16, top - 1, BLACK); } void Stack::draw() { // DRAW (loop thru food vector) lcd->filled_rectangle(x - 1, 1, x + 17, 3, WHITE); int j = 4; for (int i = 0; i < stackOfFood.size(); i++) { stackOfFood[i].x = x; stackOfFood[i].y = j; stackOfFood[i].draw(); j += 4; } } void Stack::add(Food * collided) { collided->x = x; collided->y = top; top += 4; stackOfFood.push_back(*collided); draw(); }