Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Ball/Ball.cpp@14:108052b6222b, 2019-04-14 (annotated)
- 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?
User | Revision | Line number | New 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 | } |