James Cummins / Mbed 2 deprecated el17jnc

Dependencies:   mbed

Committer:
JamesCummins
Date:
Sun Apr 21 13:20:12 2019 +0000
Revision:
25:b52aa23df120
Parent:
23:61fa82f76808
Child:
26:0dc10374546f
Started trying to create SD files, and moved game mode functions into main.cpp to make classes more readable

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JamesCummins 20:4a39a1a2be51 1 #include "BrickBreakerEngine.h"
JamesCummins 20:4a39a1a2be51 2 #include <cmath>
JamesCummins 20:4a39a1a2be51 3
JamesCummins 20:4a39a1a2be51 4 //Constructor
JamesCummins 20:4a39a1a2be51 5 BrickBreakerEngine::BrickBreakerEngine(){
JamesCummins 20:4a39a1a2be51 6 }
JamesCummins 20:4a39a1a2be51 7
JamesCummins 20:4a39a1a2be51 8 //Destructor
JamesCummins 20:4a39a1a2be51 9 BrickBreakerEngine::~BrickBreakerEngine(){
JamesCummins 20:4a39a1a2be51 10 }
JamesCummins 20:4a39a1a2be51 11
JamesCummins 20:4a39a1a2be51 12 //Initialiser
JamesCummins 23:61fa82f76808 13 void BrickBreakerEngine::init(int radius, Ball &ball){
JamesCummins 20:4a39a1a2be51 14 _ball_radius = radius;
JamesCummins 23:61fa82f76808 15 ball.init(_ball_radius);
JamesCummins 20:4a39a1a2be51 16 srand(time(NULL));
JamesCummins 20:4a39a1a2be51 17 _square_coord.x = 2 + rand()%80;
JamesCummins 20:4a39a1a2be51 18 _square_coord.y = 8 + rand()%36;
JamesCummins 20:4a39a1a2be51 19 }
JamesCummins 20:4a39a1a2be51 20
JamesCummins 25:b52aa23df120 21 //Method for rendering
JamesCummins 20:4a39a1a2be51 22
JamesCummins 23:61fa82f76808 23 void BrickBreakerEngine::brickbreaker_draw(N5110 &lcd, Ball &ball){
JamesCummins 23:61fa82f76808 24 ball.draw(lcd);
JamesCummins 20:4a39a1a2be51 25 lcd.drawRect(_square_coord.x, _square_coord.y, 5, 5, FILL_BLACK);
JamesCummins 20:4a39a1a2be51 26 print_score(lcd);
JamesCummins 20:4a39a1a2be51 27 }
JamesCummins 20:4a39a1a2be51 28
JamesCummins 20:4a39a1a2be51 29 /////////////Brickbreaker functionality/////////////////////
JamesCummins 20:4a39a1a2be51 30
JamesCummins 25:b52aa23df120 31 void BrickBreakerEngine::set_score(int score){
JamesCummins 25:b52aa23df120 32 _score = score;
JamesCummins 25:b52aa23df120 33 }
JamesCummins 25:b52aa23df120 34
JamesCummins 20:4a39a1a2be51 35 void BrickBreakerEngine::generate_rand_square(AnalogIn &randnoise){
JamesCummins 20:4a39a1a2be51 36 int rand = randnoise.read_u16();
JamesCummins 20:4a39a1a2be51 37 Vector2D square_coords = {rand % 80, 8 + rand % 36};
JamesCummins 20:4a39a1a2be51 38 _square_coord = square_coords;
JamesCummins 20:4a39a1a2be51 39 }
JamesCummins 20:4a39a1a2be51 40
JamesCummins 23:61fa82f76808 41 void BrickBreakerEngine::check_square_collision(AnalogIn &randnoise, Ball &ball){
JamesCummins 23:61fa82f76808 42 int radius = ball.get_radius();
JamesCummins 23:61fa82f76808 43 Vector2D position = ball.get_position();
JamesCummins 20:4a39a1a2be51 44 if (abs(position.x - (_square_coord.x + 2)) <= (radius + 2) and
JamesCummins 20:4a39a1a2be51 45 abs(position.y - (_square_coord.y + 2)) <= (radius + 2)) {
JamesCummins 20:4a39a1a2be51 46 _score++;
JamesCummins 20:4a39a1a2be51 47 generate_rand_square(randnoise);
JamesCummins 20:4a39a1a2be51 48 }
JamesCummins 20:4a39a1a2be51 49 }
JamesCummins 20:4a39a1a2be51 50
JamesCummins 20:4a39a1a2be51 51 void BrickBreakerEngine::print_score(N5110 &lcd){
JamesCummins 20:4a39a1a2be51 52 char buffer[2];
JamesCummins 20:4a39a1a2be51 53 int score = _score;
JamesCummins 20:4a39a1a2be51 54 sprintf(buffer, "%d", score);
JamesCummins 20:4a39a1a2be51 55 lcd.printString(buffer, 72, 0);
JamesCummins 20:4a39a1a2be51 56 }
JamesCummins 25:b52aa23df120 57
JamesCummins 25:b52aa23df120 58 void BrickBreakerEngine::check_high_score(SDFileSystem &sd){
JamesCummins 25:b52aa23df120 59 sd.disk_read(
JamesCummins 25:b52aa23df120 60 }