James Cummins / Mbed 2 deprecated el17jnc

Dependencies:   mbed

Committer:
JamesCummins
Date:
Mon Apr 15 13:28:30 2019 +0000
Revision:
17:5104ecef5bd0
Parent:
15:1564bd6b713d
Child:
23:61fa82f76808
Brickbreaker not working, all else working fine

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 17:5104ecef5bd0 13 _velocity.x = 0;
JamesCummins 17:5104ecef5bd0 14 _velocity.y = 0;
JamesCummins 9:ce0a12fb205b 15 }
JamesCummins 9:ce0a12fb205b 16
JamesCummins 13:e5a36fbd48ae 17 void Ball::draw(N5110 &lcd){
JamesCummins 13:e5a36fbd48ae 18 int radius = get_radius();
JamesCummins 13:e5a36fbd48ae 19 lcd.drawCircle(_x, _y, radius, FILL_BLACK);
JamesCummins 9:ce0a12fb205b 20 }
JamesCummins 9:ce0a12fb205b 21
JamesCummins 17:5104ecef5bd0 22 void Ball::read_input(FXOS8700CQ &accelerometer){
JamesCummins 13:e5a36fbd48ae 23 Data values = accelerometer.get_values();
JamesCummins 17:5104ecef5bd0 24 _velocity.x = -10*values.ay; //axes of the accelerometer are different to orientation of the screen
JamesCummins 17:5104ecef5bd0 25 _velocity.y = -10*values.ax; //negative to account for reversed direction
JamesCummins 17:5104ecef5bd0 26 printf("ax = %f | ay = %f | ", values.ax, values.ay);
JamesCummins 17:5104ecef5bd0 27 printf("vel.x = %f | vel.y = %f\n", _velocity.x, _velocity.y);
JamesCummins 17:5104ecef5bd0 28 }
JamesCummins 17:5104ecef5bd0 29
JamesCummins 17:5104ecef5bd0 30 void Ball::update(){
JamesCummins 17:5104ecef5bd0 31 int RADIUS = get_radius();
JamesCummins 9:ce0a12fb205b 32 _x += _velocity.x;
JamesCummins 9:ce0a12fb205b 33 _y += _velocity.y;
JamesCummins 14:108052b6222b 34 if (_x < RADIUS){ _x = RADIUS;} //check wall collisions
JamesCummins 13:e5a36fbd48ae 35 if (_x > 84 - RADIUS){ _x = 83 - RADIUS;}
JamesCummins 13:e5a36fbd48ae 36 if (_y < RADIUS){ _y = RADIUS;}
JamesCummins 13:e5a36fbd48ae 37 if (_y > 48 - RADIUS){ _y = 47 - RADIUS;}
JamesCummins 9:ce0a12fb205b 38 }
JamesCummins 9:ce0a12fb205b 39
JamesCummins 9:ce0a12fb205b 40 Vector2D Ball::get_position(){
JamesCummins 9:ce0a12fb205b 41 Vector2D pos = {_x, _y};
JamesCummins 9:ce0a12fb205b 42 return pos;
JamesCummins 9:ce0a12fb205b 43 }
JamesCummins 9:ce0a12fb205b 44
JamesCummins 9:ce0a12fb205b 45 Vector2D Ball::get_velocity(){
JamesCummins 9:ce0a12fb205b 46 Vector2D vel = {_velocity.x, _velocity.y};
JamesCummins 9:ce0a12fb205b 47 return vel;
JamesCummins 9:ce0a12fb205b 48 }
JamesCummins 9:ce0a12fb205b 49
JamesCummins 10:40c77d69e83c 50 int Ball::get_radius(){
JamesCummins 10:40c77d69e83c 51 int radius = _radius;
JamesCummins 10:40c77d69e83c 52 return radius;
JamesCummins 10:40c77d69e83c 53 }
JamesCummins 10:40c77d69e83c 54
JamesCummins 9:ce0a12fb205b 55 void Ball::set_velocity(Vector2D vel){
JamesCummins 9:ce0a12fb205b 56 _velocity.x = vel.x;
JamesCummins 9:ce0a12fb205b 57 _velocity.y = vel.y;
JamesCummins 9:ce0a12fb205b 58 }
JamesCummins 9:ce0a12fb205b 59
JamesCummins 9:ce0a12fb205b 60 void Ball::set_position(Vector2D pos){
JamesCummins 9:ce0a12fb205b 61 _x = pos.x;
JamesCummins 9:ce0a12fb205b 62 _y = pos.y;
JamesCummins 10:40c77d69e83c 63 }
JamesCummins 10:40c77d69e83c 64
JamesCummins 10:40c77d69e83c 65 void Ball::set_radius(int radius){
JamesCummins 10:40c77d69e83c 66 _radius = radius;
JamesCummins 9:ce0a12fb205b 67 }