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
Map/Map.cpp@6:8741d2011692, 2019-03-19 (annotated)
- Committer:
- lewisgw
- Date:
- Tue Mar 19 11:34:21 2019 +0000
- Revision:
- 6:8741d2011692
- Child:
- 8:5327418f823a
Added a Map class, which is used to continuously generate moving platforms with gaps along the bottom of the LCD
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lewisgw | 6:8741d2011692 | 1 | #include "Map.h" |
lewisgw | 6:8741d2011692 | 2 | |
lewisgw | 6:8741d2011692 | 3 | Map::Map(){} |
lewisgw | 6:8741d2011692 | 4 | |
lewisgw | 6:8741d2011692 | 5 | Map::~Map(){} |
lewisgw | 6:8741d2011692 | 6 | |
lewisgw | 6:8741d2011692 | 7 | void Map::init() { |
lewisgw | 6:8741d2011692 | 8 | _line_1.x_start = 0; |
lewisgw | 6:8741d2011692 | 9 | _line_1.x_end = 15; |
lewisgw | 6:8741d2011692 | 10 | _line_1.y = 40; |
lewisgw | 6:8741d2011692 | 11 | _line_2.x_start = 25; |
lewisgw | 6:8741d2011692 | 12 | _line_2.x_end = 40; |
lewisgw | 6:8741d2011692 | 13 | _line_2.y = 40; |
lewisgw | 6:8741d2011692 | 14 | _line_3.x_start = 50; |
lewisgw | 6:8741d2011692 | 15 | _line_3.x_end = 80; |
lewisgw | 6:8741d2011692 | 16 | _line_3.y = 40; |
lewisgw | 6:8741d2011692 | 17 | } |
lewisgw | 6:8741d2011692 | 18 | |
lewisgw | 6:8741d2011692 | 19 | |
lewisgw | 6:8741d2011692 | 20 | void Map::generate_line_1(int length) { |
lewisgw | 6:8741d2011692 | 21 | _line_1.x_start--; |
lewisgw | 6:8741d2011692 | 22 | if(_line_1.x_start < 80 - length) { |
lewisgw | 6:8741d2011692 | 23 | _line_1.x_end--; |
lewisgw | 6:8741d2011692 | 24 | } |
lewisgw | 6:8741d2011692 | 25 | if(_line_1.x_start <= 0) { |
lewisgw | 6:8741d2011692 | 26 | _line_1.x_start = 0; |
lewisgw | 6:8741d2011692 | 27 | } |
lewisgw | 6:8741d2011692 | 28 | if(_line_1.x_end <= 0) { |
lewisgw | 6:8741d2011692 | 29 | _line_1.x_start = 80; |
lewisgw | 6:8741d2011692 | 30 | _line_1.x_end = 80; |
lewisgw | 6:8741d2011692 | 31 | } |
lewisgw | 6:8741d2011692 | 32 | } |
lewisgw | 6:8741d2011692 | 33 | |
lewisgw | 6:8741d2011692 | 34 | |
lewisgw | 6:8741d2011692 | 35 | void Map::generate_line_2(int length) { |
lewisgw | 6:8741d2011692 | 36 | _line_2.x_start--; |
lewisgw | 6:8741d2011692 | 37 | if(_line_2.x_start < 80 - length) { |
lewisgw | 6:8741d2011692 | 38 | _line_2.x_end--; |
lewisgw | 6:8741d2011692 | 39 | } |
lewisgw | 6:8741d2011692 | 40 | if(_line_2.x_start <= 0) { |
lewisgw | 6:8741d2011692 | 41 | _line_2.x_start = 0; |
lewisgw | 6:8741d2011692 | 42 | } |
lewisgw | 6:8741d2011692 | 43 | if(_line_2.x_end <= 0) { |
lewisgw | 6:8741d2011692 | 44 | _line_2.x_start = 80; |
lewisgw | 6:8741d2011692 | 45 | _line_2.x_end = 80; |
lewisgw | 6:8741d2011692 | 46 | } |
lewisgw | 6:8741d2011692 | 47 | |
lewisgw | 6:8741d2011692 | 48 | } |
lewisgw | 6:8741d2011692 | 49 | |
lewisgw | 6:8741d2011692 | 50 | void Map::generate_line_3(int length) { |
lewisgw | 6:8741d2011692 | 51 | _line_3.x_start--; |
lewisgw | 6:8741d2011692 | 52 | if(_line_3.x_start < 80 - length) { |
lewisgw | 6:8741d2011692 | 53 | _line_3.x_end--; |
lewisgw | 6:8741d2011692 | 54 | } |
lewisgw | 6:8741d2011692 | 55 | if(_line_3.x_start <= 0) { |
lewisgw | 6:8741d2011692 | 56 | _line_3.x_start = 0; |
lewisgw | 6:8741d2011692 | 57 | } |
lewisgw | 6:8741d2011692 | 58 | if(_line_3.x_end <= 0) { |
lewisgw | 6:8741d2011692 | 59 | _line_3.x_start = 80; |
lewisgw | 6:8741d2011692 | 60 | _line_3.x_end = 80; |
lewisgw | 6:8741d2011692 | 61 | } |
lewisgw | 6:8741d2011692 | 62 | |
lewisgw | 6:8741d2011692 | 63 | } |
lewisgw | 6:8741d2011692 | 64 | |
lewisgw | 6:8741d2011692 | 65 | |
lewisgw | 6:8741d2011692 | 66 | |
lewisgw | 6:8741d2011692 | 67 | Line Map::get_line_1() { |
lewisgw | 6:8741d2011692 | 68 | return _line_1; |
lewisgw | 6:8741d2011692 | 69 | } |
lewisgw | 6:8741d2011692 | 70 | |
lewisgw | 6:8741d2011692 | 71 | |
lewisgw | 6:8741d2011692 | 72 | Line Map::get_line_2() { |
lewisgw | 6:8741d2011692 | 73 | return _line_2; |
lewisgw | 6:8741d2011692 | 74 | } |
lewisgw | 6:8741d2011692 | 75 | |
lewisgw | 6:8741d2011692 | 76 | Line Map::get_line_3() { |
lewisgw | 6:8741d2011692 | 77 | return _line_3; |
lewisgw | 6:8741d2011692 | 78 | } |
lewisgw | 6:8741d2011692 | 79 | |
lewisgw | 6:8741d2011692 | 80 | |
lewisgw | 6:8741d2011692 | 81 | /* |
lewisgw | 6:8741d2011692 | 82 | if(_line_1.x_end < (80 - gap_size)) { // only start moving line 2 if the gap has passed |
lewisgw | 6:8741d2011692 | 83 | _line_2_counter = 1; |
lewisgw | 6:8741d2011692 | 84 | } else { |
lewisgw | 6:8741d2011692 | 85 | _line_2_counter = 0; |
lewisgw | 6:8741d2011692 | 86 | } |
lewisgw | 6:8741d2011692 | 87 | _line_2.x_start = _line_2.x_start - _line_2_counter; // on every iteration increase size of line 2, fixed on RHS and increasing on LHS |
lewisgw | 6:8741d2011692 | 88 | _line_2.x_end = _line_2.x_start + 80; |
lewisgw | 6:8741d2011692 | 89 | if(_line_2.x_end > 81) { |
lewisgw | 6:8741d2011692 | 90 | _line_2.x_end = 80; // ensure ends at 80 TEST THIS ON ITS OWN |
lewisgw | 6:8741d2011692 | 91 | } |
lewisgw | 6:8741d2011692 | 92 | |
lewisgw | 6:8741d2011692 | 93 | if(_line_2.x_start == 1) { |
lewisgw | 6:8741d2011692 | 94 | _line_1.x_start = 0; |
lewisgw | 6:8741d2011692 | 95 | _line_1.x_end = 80; |
lewisgw | 6:8741d2011692 | 96 | _line_2.x_start = 80; |
lewisgw | 6:8741d2011692 | 97 | _line_2.x_end = 80; |
lewisgw | 6:8741d2011692 | 98 | } |
lewisgw | 6:8741d2011692 | 99 | */ |