James Heavey
/
EL17JH
FINAL VERSION
Diff: BreakoutEngine/BreakoutEngine.h
- Revision:
- 27:1b5038b0a7a2
- Child:
- 29:5168318d3e88
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/BreakoutEngine/BreakoutEngine.h Wed Apr 24 05:04:01 2019 +0000 @@ -0,0 +1,94 @@ +#ifndef BREAKOUTENGINE_H +#define BREAKOUTENGINE_H + +#include "mbed.h" +#include "N5110.h" +#include "Gamepad.h" +#include "Ball.h" +#include "Paddle.h" +#include "Brick.h" + +#include <cmath> +#include <list> +#include <iostream> +#include <string> +#include <iterator> +#include <algorithm> + +// gap from edge of screen +#define GAP 2 +#define BRICK_WIDTH 12 +#define BRICK_HEIGHT 4 +#define PADDLE_WIDTH 15 + +class BreakoutEngine +{ + +public: + BreakoutEngine(); + ~BreakoutEngine(); + + void init(int paddle_width,int paddle_height,int ball_size,int speed); + void read_input(Gamepad &pad, bool x); + void update(Gamepad &pad); + void draw(N5110 &lcd); + void lives_leds(Gamepad &pad); + void flash_backlight(N5110 &lcd); + int get_lives(); + int get_num_left(); + bool check_goal(Gamepad &pad); + +private: + + void check_wall_collision(Gamepad &pad); + void check_paddle_collisions(Gamepad &pad); + void check_brick_collisions(Gamepad &pad); + void print_scores(N5110 &lcd); + void one_less(); + + Paddle _p1; + + int _paddle_width; + int _paddle_height; + int _ball_size; + int _speed; + + // y positions of the paddle + int _p1y; + int _number_left; + + Ball _ball; + + Direction _d; + float _mag; + + + std::list<Brick> listofBricks; + std::list<Brick>::iterator it; + + Brick _brick11; + Brick _brick12; + Brick _brick13; + Brick _brick14; + Brick _brick15; + Brick _brick16; + + Brick _brick21; + Brick _brick22; + Brick _brick23; + Brick _brick24; + Brick _brick25; + Brick _brick26; + + Brick _brick31; + Brick _brick32; + Brick _brick33; + Brick _brick34; + Brick _brick35; + Brick _brick36; + + + +}; + +#endif \ No newline at end of file