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.
Asteroids/Asteroid.cpp@1:2d3139578aca, 2019-03-25 (annotated)
- Committer:
- ll16o2l
- Date:
- Mon Mar 25 11:54:51 2019 +0000
- Revision:
- 1:2d3139578aca
Made Main file with the starting message.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ll16o2l | 1:2d3139578aca | 1 | #ifndef BITMAP_H |
ll16o2l | 1:2d3139578aca | 2 | #define BITMAP_H |
ll16o2l | 1:2d3139578aca | 3 | |
ll16o2l | 1:2d3139578aca | 4 | #include <vector> |
ll16o2l | 1:2d3139578aca | 5 | |
ll16o2l | 1:2d3139578aca | 6 | #include "Asteroid.h" |
ll16o2l | 1:2d3139578aca | 7 | |
ll16o2l | 1:2d3139578aca | 8 | // nothing doing in the constructor and destructor |
ll16o2l | 1:2d3139578aca | 9 | Asteroid::Asteroid() |
ll16o2l | 1:2d3139578aca | 10 | { |
ll16o2l | 1:2d3139578aca | 11 | |
ll16o2l | 1:2d3139578aca | 12 | } |
ll16o2l | 1:2d3139578aca | 13 | |
ll16o2l | 1:2d3139578aca | 14 | Asteroid::~Asteroid() |
ll16o2l | 1:2d3139578aca | 15 | { |
ll16o2l | 1:2d3139578aca | 16 | |
ll16o2l | 1:2d3139578aca | 17 | } |
ll16o2l | 1:2d3139578aca | 18 | |
ll16o2l | 1:2d3139578aca | 19 | void Ball::init(int size,int speed) |
ll16o2l | 1:2d3139578aca | 20 | { |
ll16o2l | 1:2d3139578aca | 21 | _size = size; |
ll16o2l | 1:2d3139578aca | 22 | |
ll16o2l | 1:2d3139578aca | 23 | _x = WIDTH/2 - _size/2; |
ll16o2l | 1:2d3139578aca | 24 | _y = HEIGHT/2 - _size/2; |
ll16o2l | 1:2d3139578aca | 25 | |
ll16o2l | 1:2d3139578aca | 26 | srand(time(NULL)); |
ll16o2l | 1:2d3139578aca | 27 | int direction = rand() % 4; // randomise initial direction. |
ll16o2l | 1:2d3139578aca | 28 | |
ll16o2l | 1:2d3139578aca | 29 | // 4 possibilities. Get random modulo and set velocities accordingly |
ll16o2l | 1:2d3139578aca | 30 | if (direction == 0) { |
ll16o2l | 1:2d3139578aca | 31 | _velocity.x = speed; |
ll16o2l | 1:2d3139578aca | 32 | _velocity.y = speed; |
ll16o2l | 1:2d3139578aca | 33 | } else if (direction == 1) { |
ll16o2l | 1:2d3139578aca | 34 | _velocity.x = speed; |
ll16o2l | 1:2d3139578aca | 35 | _velocity.y = -speed; |
ll16o2l | 1:2d3139578aca | 36 | } else if (direction == 2) { |
ll16o2l | 1:2d3139578aca | 37 | _velocity.x = speed; |
ll16o2l | 1:2d3139578aca | 38 | _velocity.y = speed; |
ll16o2l | 1:2d3139578aca | 39 | } else { |
ll16o2l | 1:2d3139578aca | 40 | _velocity.x = -speed; |
ll16o2l | 1:2d3139578aca | 41 | _velocity.y = -speed; |
ll16o2l | 1:2d3139578aca | 42 | } |
ll16o2l | 1:2d3139578aca | 43 | } |
ll16o2l | 1:2d3139578aca | 44 | |
ll16o2l | 1:2d3139578aca | 45 | void Ball::draw(N5110 &lcd) |
ll16o2l | 1:2d3139578aca | 46 | { |
ll16o2l | 1:2d3139578aca | 47 | lcd.drawRect(_x,_y,_size,_size,FILL_BLACK); |
ll16o2l | 1:2d3139578aca | 48 | } |
ll16o2l | 1:2d3139578aca | 49 | |
ll16o2l | 1:2d3139578aca | 50 | void Ball::update() |
ll16o2l | 1:2d3139578aca | 51 | { |
ll16o2l | 1:2d3139578aca | 52 | _x += _velocity.x; |
ll16o2l | 1:2d3139578aca | 53 | _y += _velocity.y; |
ll16o2l | 1:2d3139578aca | 54 | } |
ll16o2l | 1:2d3139578aca | 55 | |
ll16o2l | 1:2d3139578aca | 56 | void Ball::set_velocity(Vector2D v) |
ll16o2l | 1:2d3139578aca | 57 | { |
ll16o2l | 1:2d3139578aca | 58 | _velocity.x = v.x; |
ll16o2l | 1:2d3139578aca | 59 | _velocity.y = v.y; |
ll16o2l | 1:2d3139578aca | 60 | } |
ll16o2l | 1:2d3139578aca | 61 | |
ll16o2l | 1:2d3139578aca | 62 | Vector2D Ball::get_velocity() |
ll16o2l | 1:2d3139578aca | 63 | { |
ll16o2l | 1:2d3139578aca | 64 | Vector2D v = {_velocity.x,_velocity.y}; |
ll16o2l | 1:2d3139578aca | 65 | return v; |
ll16o2l | 1:2d3139578aca | 66 | } |
ll16o2l | 1:2d3139578aca | 67 | |
ll16o2l | 1:2d3139578aca | 68 | Vector2D Ball::get_pos() |
ll16o2l | 1:2d3139578aca | 69 | { |
ll16o2l | 1:2d3139578aca | 70 | Vector2D p = {_x,_y}; |
ll16o2l | 1:2d3139578aca | 71 | return p; |
ll16o2l | 1:2d3139578aca | 72 | } |
ll16o2l | 1:2d3139578aca | 73 | |
ll16o2l | 1:2d3139578aca | 74 | void Ball::set_pos(Vector2D p) |
ll16o2l | 1:2d3139578aca | 75 | { |
ll16o2l | 1:2d3139578aca | 76 | _x = p.x; |
ll16o2l | 1:2d3139578aca | 77 | _y = p.y; |
ll16o2l | 1:2d3139578aca | 78 | } |