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.
Dependencies: mbed
Fork of ll14zs by
Car/Car.cpp@2:5d3aac7fd3df, 2018-05-08 (annotated)
- Committer:
- ll14zs
- Date:
- Tue May 08 11:15:58 2018 +0000
- Revision:
- 2:5d3aac7fd3df
- Child:
- 3:1231a3961984
commit before implementing the road;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ll14zs | 2:5d3aac7fd3df | 1 | #include "Car.h" |
ll14zs | 2:5d3aac7fd3df | 2 | |
ll14zs | 2:5d3aac7fd3df | 3 | Car::Car() |
ll14zs | 2:5d3aac7fd3df | 4 | { |
ll14zs | 2:5d3aac7fd3df | 5 | |
ll14zs | 2:5d3aac7fd3df | 6 | } |
ll14zs | 2:5d3aac7fd3df | 7 | |
ll14zs | 2:5d3aac7fd3df | 8 | Car::~Car() |
ll14zs | 2:5d3aac7fd3df | 9 | { |
ll14zs | 2:5d3aac7fd3df | 10 | |
ll14zs | 2:5d3aac7fd3df | 11 | } |
ll14zs | 2:5d3aac7fd3df | 12 | |
ll14zs | 2:5d3aac7fd3df | 13 | void Car::init(int x,int y,int width, int height) |
ll14zs | 2:5d3aac7fd3df | 14 | { |
ll14zs | 2:5d3aac7fd3df | 15 | _x = WIDTH/2; _width = 3; // x initial start coordinate |
ll14zs | 2:5d3aac7fd3df | 16 | _y = HEIGHT/3; _height = 5; // y initial start coordinate |
ll14zs | 2:5d3aac7fd3df | 17 | |
ll14zs | 2:5d3aac7fd3df | 18 | |
ll14zs | 2:5d3aac7fd3df | 19 | int direction = 0; |
ll14zs | 2:5d3aac7fd3df | 20 | if (direction == 0) { |
ll14zs | 2:5d3aac7fd3df | 21 | _velocity.y = (1);// car is always moving |
ll14zs | 2:5d3aac7fd3df | 22 | } |
ll14zs | 2:5d3aac7fd3df | 23 | } |
ll14zs | 2:5d3aac7fd3df | 24 | |
ll14zs | 2:5d3aac7fd3df | 25 | void Car::draw(N5110 &lcd) |
ll14zs | 2:5d3aac7fd3df | 26 | { |
ll14zs | 2:5d3aac7fd3df | 27 | // draw in screen buffer. |
ll14zs | 2:5d3aac7fd3df | 28 | lcd.drawRect(_x,_y,_width,_height,FILL_BLACK); |
ll14zs | 2:5d3aac7fd3df | 29 | } |
ll14zs | 2:5d3aac7fd3df | 30 | |
ll14zs | 2:5d3aac7fd3df | 31 | void Car::update(Direction d) |
ll14zs | 2:5d3aac7fd3df | 32 | { |
ll14zs | 2:5d3aac7fd3df | 33 | _speed = 2; |
ll14zs | 2:5d3aac7fd3df | 34 | |
ll14zs | 2:5d3aac7fd3df | 35 | // update the x value depending on the direction of movement |
ll14zs | 2:5d3aac7fd3df | 36 | |
ll14zs | 2:5d3aac7fd3df | 37 | if (d == -i) { |
ll14zs | 2:5d3aac7fd3df | 38 | _x+=_speed; |
ll14zs | 2:5d3aac7fd3df | 39 | } |
ll14zs | 2:5d3aac7fd3df | 40 | if (d == +i) { |
ll14zs | 2:5d3aac7fd3df | 41 | _x-=_speed; |
ll14zs | 2:5d3aac7fd3df | 42 | } |
ll14zs | 2:5d3aac7fd3df | 43 | |
ll14zs | 2:5d3aac7fd3df | 44 | |
ll14zs | 2:5d3aac7fd3df | 45 | |
ll14zs | 2:5d3aac7fd3df | 46 | // ensure that the car does not go off screen |
ll14zs | 2:5d3aac7fd3df | 47 | |
ll14zs | 2:5d3aac7fd3df | 48 | if (_x < 1) { |
ll14zs | 2:5d3aac7fd3df | 49 | _x = 1; |
ll14zs | 2:5d3aac7fd3df | 50 | } |
ll14zs | 2:5d3aac7fd3df | 51 | if (_x > 82) { |
ll14zs | 2:5d3aac7fd3df | 52 | _x = 82; |
ll14zs | 2:5d3aac7fd3df | 53 | } |
ll14zs | 2:5d3aac7fd3df | 54 | if (_y < 1) { |
ll14zs | 2:5d3aac7fd3df | 55 | _y = 1; |
ll14zs | 2:5d3aac7fd3df | 56 | } |
ll14zs | 2:5d3aac7fd3df | 57 | if (_y > 42) { |
ll14zs | 2:5d3aac7fd3df | 58 | _y = 42; |
ll14zs | 2:5d3aac7fd3df | 59 | } |
ll14zs | 2:5d3aac7fd3df | 60 | |
ll14zs | 2:5d3aac7fd3df | 61 | _y += _velocity.y; |
ll14zs | 2:5d3aac7fd3df | 62 | |
ll14zs | 2:5d3aac7fd3df | 63 | } |
ll14zs | 2:5d3aac7fd3df | 64 | |
ll14zs | 2:5d3aac7fd3df | 65 | |
ll14zs | 2:5d3aac7fd3df | 66 | |
ll14zs | 2:5d3aac7fd3df | 67 | |
ll14zs | 2:5d3aac7fd3df | 68 | void Car::set_velocity(Vector2D v) |
ll14zs | 2:5d3aac7fd3df | 69 | { |
ll14zs | 2:5d3aac7fd3df | 70 | _velocity.x = v.x; |
ll14zs | 2:5d3aac7fd3df | 71 | _velocity.y = v.y; |
ll14zs | 2:5d3aac7fd3df | 72 | } |
ll14zs | 2:5d3aac7fd3df | 73 | |
ll14zs | 2:5d3aac7fd3df | 74 | Vector2D Car::get_velocity() |
ll14zs | 2:5d3aac7fd3df | 75 | { |
ll14zs | 2:5d3aac7fd3df | 76 | Vector2D v = {_velocity.x,_velocity.y}; |
ll14zs | 2:5d3aac7fd3df | 77 | return v; |
ll14zs | 2:5d3aac7fd3df | 78 | } |
ll14zs | 2:5d3aac7fd3df | 79 | |
ll14zs | 2:5d3aac7fd3df | 80 | |
ll14zs | 2:5d3aac7fd3df | 81 | Vector2D Car::get_position() |
ll14zs | 2:5d3aac7fd3df | 82 | { |
ll14zs | 2:5d3aac7fd3df | 83 | Vector2D p = {_x,_y}; |
ll14zs | 2:5d3aac7fd3df | 84 | return p; |
ll14zs | 2:5d3aac7fd3df | 85 | } |
ll14zs | 2:5d3aac7fd3df | 86 | |
ll14zs | 2:5d3aac7fd3df | 87 | void Car::set_position(Vector2D p) |
ll14zs | 2:5d3aac7fd3df | 88 | { |
ll14zs | 2:5d3aac7fd3df | 89 | _x = p.x; |
ll14zs | 2:5d3aac7fd3df | 90 | _y = p.y; |
ll14zs | 2:5d3aac7fd3df | 91 | } |
ll14zs | 2:5d3aac7fd3df | 92 | |
ll14zs | 2:5d3aac7fd3df | 93 | |
ll14zs | 2:5d3aac7fd3df | 94 | |
ll14zs | 2:5d3aac7fd3df | 95 | void Car::add_score() |
ll14zs | 2:5d3aac7fd3df | 96 | { |
ll14zs | 2:5d3aac7fd3df | 97 | _score++; |
ll14zs | 2:5d3aac7fd3df | 98 | } |
ll14zs | 2:5d3aac7fd3df | 99 | int Car::get_score() |
ll14zs | 2:5d3aac7fd3df | 100 | { |
ll14zs | 2:5d3aac7fd3df | 101 | return _score; |
ll14zs | 2:5d3aac7fd3df | 102 | } |