James Cummins / Mbed 2 deprecated el17jnc

Dependencies:   mbed

Committer:
JamesCummins
Date:
Mon Apr 15 07:29:35 2019 +0000
Revision:
15:1564bd6b713d
Parent:
14:108052b6222b
Child:
17:5104ecef5bd0
Brickbreaker mode working and calibrated WITHOUT PAUSE MENU

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JamesCummins 11:2cf0d4ce8677 1 #include "Ball.h"
JamesCummins 9:ce0a12fb205b 2
JamesCummins 9:ce0a12fb205b 3 Ball::Ball()
JamesCummins 9:ce0a12fb205b 4 {}
JamesCummins 9:ce0a12fb205b 5
JamesCummins 9:ce0a12fb205b 6 Ball::~Ball()
JamesCummins 9:ce0a12fb205b 7 {}
JamesCummins 9:ce0a12fb205b 8
JamesCummins 9:ce0a12fb205b 9 void Ball::init(int radius){
JamesCummins 9:ce0a12fb205b 10 _radius = radius;
JamesCummins 9:ce0a12fb205b 11 _x = 48;
JamesCummins 9:ce0a12fb205b 12 _y = 24;
JamesCummins 9:ce0a12fb205b 13 }
JamesCummins 9:ce0a12fb205b 14
JamesCummins 13:e5a36fbd48ae 15 void Ball::draw(N5110 &lcd){
JamesCummins 13:e5a36fbd48ae 16 int radius = get_radius();
JamesCummins 13:e5a36fbd48ae 17 lcd.drawCircle(_x, _y, radius, FILL_BLACK);
JamesCummins 9:ce0a12fb205b 18 }
JamesCummins 9:ce0a12fb205b 19
JamesCummins 9:ce0a12fb205b 20 void Ball::update(FXOS8700CQ &accelerometer){
JamesCummins 13:e5a36fbd48ae 21 int RADIUS = get_radius();
JamesCummins 13:e5a36fbd48ae 22 Data values = accelerometer.get_values();
JamesCummins 15:1564bd6b713d 23 printf("ax = %f | ay = %f\n", values.ax, values.ay);
JamesCummins 14:108052b6222b 24 _velocity.x = -5*values.ay; //axes of the accelerometer are different to orientation of the screen
JamesCummins 14:108052b6222b 25 _velocity.y = -5*values.ax; //negative to account for reversed direction
JamesCummins 9:ce0a12fb205b 26 _x += _velocity.x;
JamesCummins 9:ce0a12fb205b 27 _y += _velocity.y;
JamesCummins 14:108052b6222b 28 if (_x < RADIUS){ _x = RADIUS;} //check wall collisions
JamesCummins 13:e5a36fbd48ae 29 if (_x > 84 - RADIUS){ _x = 83 - RADIUS;}
JamesCummins 13:e5a36fbd48ae 30 if (_y < RADIUS){ _y = RADIUS;}
JamesCummins 13:e5a36fbd48ae 31 if (_y > 48 - RADIUS){ _y = 47 - RADIUS;}
JamesCummins 9:ce0a12fb205b 32 }
JamesCummins 9:ce0a12fb205b 33
JamesCummins 9:ce0a12fb205b 34 Vector2D Ball::get_position(){
JamesCummins 9:ce0a12fb205b 35 Vector2D pos = {_x, _y};
JamesCummins 9:ce0a12fb205b 36 return pos;
JamesCummins 9:ce0a12fb205b 37 }
JamesCummins 9:ce0a12fb205b 38
JamesCummins 9:ce0a12fb205b 39 Vector2D Ball::get_velocity(){
JamesCummins 9:ce0a12fb205b 40 Vector2D vel = {_velocity.x, _velocity.y};
JamesCummins 9:ce0a12fb205b 41 return vel;
JamesCummins 9:ce0a12fb205b 42 }
JamesCummins 9:ce0a12fb205b 43
JamesCummins 10:40c77d69e83c 44 int Ball::get_radius(){
JamesCummins 10:40c77d69e83c 45 int radius = _radius;
JamesCummins 10:40c77d69e83c 46 return radius;
JamesCummins 10:40c77d69e83c 47 }
JamesCummins 10:40c77d69e83c 48
JamesCummins 9:ce0a12fb205b 49 void Ball::set_velocity(Vector2D vel){
JamesCummins 9:ce0a12fb205b 50 _velocity.x = vel.x;
JamesCummins 9:ce0a12fb205b 51 _velocity.y = vel.y;
JamesCummins 9:ce0a12fb205b 52 }
JamesCummins 9:ce0a12fb205b 53
JamesCummins 9:ce0a12fb205b 54 void Ball::set_position(Vector2D pos){
JamesCummins 9:ce0a12fb205b 55 _x = pos.x;
JamesCummins 9:ce0a12fb205b 56 _y = pos.y;
JamesCummins 10:40c77d69e83c 57 }
JamesCummins 10:40c77d69e83c 58
JamesCummins 10:40c77d69e83c 59 void Ball::set_radius(int radius){
JamesCummins 10:40c77d69e83c 60 _radius = radius;
JamesCummins 9:ce0a12fb205b 61 }