Faizan and Pages fun little game
Dependencies: 4DGL-uLCD-SE mbed SDFileSystem wave_player
main.cpp
- Committer:
- fkhan39
- Date:
- 2016-10-31
- Revision:
- 2:4c5f409d6bb8
- Parent:
- 1:9eeeb0d8f036
- Child:
- 3:058e10b8ecf6
File content as of revision 2:4c5f409d6bb8:
#include "mbed.h" #include "uLCD_4DGL.h" #include "food.h" #include "stack.h" #include <ctime> #include <cstdlib> #include <vector> #define BREAD 1 #define LETTUCE 2 #define CHEESE 3 #define TOMATO 4 #define BADLETTUCE 5 #define BADCHEESE 6 #define BADTOMATO 7 uLCD_4DGL lcd(p9,p10,p11); vector<Food> foods; Food collided(&lcd); Stack sandwich(64,&lcd); DigitalIn right(p19); DigitalIn left(p20); int score, lives; float clk, clk2; Timer t; bool collisionCheck(); int main() { score = 0; lives = 3; left.mode(PullUp); right.mode(PullUp); t.start(); srand(time(NULL)); clk = clk2 = 0; lcd.line(1, 112, 126, 112, WHITE); while(lives) { if (!left) { sandwich.move(-1); } else if (!right) { sandwich.move(+1); } if (collisionCheck()) { // if the collided object is bad // loss of life // if the collided object is bread // close up the sandwich, add the points to the overall score, re draw // else // add to stack, remove from falling object list, redraw } // every 3 seconds add new food! use timer. float curr = t.read(); if (curr - clk >= 3.0) { clk = curr; // lcd.printf(" new "); int x = rand()%110+1; int type = rand()%7+1; Food item(type, x, &lcd); foods.push_back(item); // add new food } // every .2 second each food should fall a lil bit! use timer. if (curr - clk2 >= 0.2) { clk2 = curr; // lcd.printf(" fall "); for (int i = 0; i < foods.size(); i++) { Food * f = &foods[i]; f->fall(); } // each food should fall a lil bit! } } lcd.printf("Your score is: %i", score); } bool collisionCheck() { // remove foods from vector that are off screen // find foods that have an (x,y) that is within the range of the top of the stack // if nothing found w/i the range // return false // if something found // collidedFood = that food item // return true return NULL; }