James Cummins / Mbed 2 deprecated el17jnc

Dependencies:   mbed

Committer:
JamesCummins
Date:
Sun Apr 14 16:40:51 2019 +0000
Revision:
14:108052b6222b
Parent:
13:e5a36fbd48ae
Child:
15:1564bd6b713d
Added pause menu, needs debugging

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 14:108052b6222b 23 _velocity.x = -5*values.ay; //axes of the accelerometer are different to orientation of the screen
JamesCummins 14:108052b6222b 24 _velocity.y = -5*values.ax; //negative to account for reversed direction
JamesCummins 9:ce0a12fb205b 25 _x += _velocity.x;
JamesCummins 9:ce0a12fb205b 26 _y += _velocity.y;
JamesCummins 14:108052b6222b 27 if (_x < RADIUS){ _x = RADIUS;} //check wall collisions
JamesCummins 13:e5a36fbd48ae 28 if (_x > 84 - RADIUS){ _x = 83 - RADIUS;}
JamesCummins 13:e5a36fbd48ae 29 if (_y < RADIUS){ _y = RADIUS;}
JamesCummins 13:e5a36fbd48ae 30 if (_y > 48 - RADIUS){ _y = 47 - RADIUS;}
JamesCummins 9:ce0a12fb205b 31 }
JamesCummins 9:ce0a12fb205b 32
JamesCummins 9:ce0a12fb205b 33 Vector2D Ball::get_position(){
JamesCummins 9:ce0a12fb205b 34 Vector2D pos = {_x, _y};
JamesCummins 9:ce0a12fb205b 35 return pos;
JamesCummins 9:ce0a12fb205b 36 }
JamesCummins 9:ce0a12fb205b 37
JamesCummins 9:ce0a12fb205b 38 Vector2D Ball::get_velocity(){
JamesCummins 9:ce0a12fb205b 39 Vector2D vel = {_velocity.x, _velocity.y};
JamesCummins 9:ce0a12fb205b 40 return vel;
JamesCummins 9:ce0a12fb205b 41 }
JamesCummins 9:ce0a12fb205b 42
JamesCummins 10:40c77d69e83c 43 int Ball::get_radius(){
JamesCummins 10:40c77d69e83c 44 int radius = _radius;
JamesCummins 10:40c77d69e83c 45 return radius;
JamesCummins 10:40c77d69e83c 46 }
JamesCummins 10:40c77d69e83c 47
JamesCummins 9:ce0a12fb205b 48 void Ball::set_velocity(Vector2D vel){
JamesCummins 9:ce0a12fb205b 49 _velocity.x = vel.x;
JamesCummins 9:ce0a12fb205b 50 _velocity.y = vel.y;
JamesCummins 9:ce0a12fb205b 51 }
JamesCummins 9:ce0a12fb205b 52
JamesCummins 9:ce0a12fb205b 53 void Ball::set_position(Vector2D pos){
JamesCummins 9:ce0a12fb205b 54 _x = pos.x;
JamesCummins 9:ce0a12fb205b 55 _y = pos.y;
JamesCummins 10:40c77d69e83c 56 }
JamesCummins 10:40c77d69e83c 57
JamesCummins 10:40c77d69e83c 58 void Ball::set_radius(int radius){
JamesCummins 10:40c77d69e83c 59 _radius = radius;
JamesCummins 9:ce0a12fb205b 60 }