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.
Diff: Map/Map.cpp
- Revision:
- 4:3446009e2f38
- Parent:
- 3:3d35ab70b565
- Child:
- 6:e8c03f264ffc
--- a/Map/Map.cpp Mon May 06 19:50:27 2019 +0000 +++ b/Map/Map.cpp Tue May 07 19:25:20 2019 +0000 @@ -7,47 +7,56 @@ void Map::init(int width, int height, int swidth, int sheight) { // initialises map dimensions _swidth = swidth; _sheight = sheight; + _width = width; + _height = height; _w = 0; _h = 0; - _x1 = -(_swidth / 2) - (width - 84) / 2; - _x2 = _swidth + (width - 84) / 2; //84 + (_w - 84) / 2; - _y1 = -(_sheight) - (height - _sheight) / 2; //-24 - (_h - 48) / 2; - _y2 = _sheight + (height - _sheight) / 2; //48 + (_h - 48) / 2; +} + +void Map::write(int x1, int y1) { // uses origin of top left corner to create the map + + _x1 = x1; + _x2 = _x1 + _width + (_swidth / 2); + _y1 = y1; + _y2 = _y1 + _height + (_sheight / 2); + map_parameters(); +} + +void Map::map_parameters() { + horizontal(); + veritical(); } -void Map::write(int pix_x, int pix_y) { // Builds new parameters of map - - _x1 += pix_x; - _x2 += pix_x; - _y1 += pix_y; - _y2 += pix_y; +void Map::horizontal() { + if (_x1 < -(_swidth / 2)) { + _x1_pos = -1; + } else if (_x1 < 0) { + _x1_pos = 0; + _w = (_swidth / 2) + _x1; + } else { + _x1_pos = 0; + _w = _swidth / 2; + } + if (_x2 < (_swidth / 2)) { + _x2 = (_swidth / 2); + // _x1 = -100; do this in Engine + } +} - if (_x1 < -(_swidth / 2)) { - _x1_pos = -1; - } else if (_x1 < 0) { - _x1_pos = 0; - _w = (_swidth / 2) + _x1; - } else { - _x1 = 0; - _x1_pos = 0; - _w = _swidth / 2; - } - if (_y1 < -(_sheight / 2)) { - _y1_pos = -1; - } else if (_y1 < 0) { - _y1_pos = 0; - _h = (_sheight / 2) + _y1; - } else { - _y1 = 0; - _y1_pos = 0; - _h = _sheight / 2; - } - if (_y2 < (_sheight / 2)) { - _y2 = (_sheight / 2); - } - if (_x2 < (_swidth / 2)) { - _x2 = (_swidth / 2); - } +void Map::veritical() { + if (_y1 < -(_sheight / 2)) { + _y1_pos = -1; + } else if (_y1 < 0) { + _y1_pos = 0; + _h = (_sheight / 2) + _y1; + } else { + _y1_pos = 0; + _h = _sheight / 2; + } + if (_y2 < (_sheight / 2)) { + _y2 = (_sheight / 2); + // _y1 = -100; do this in Engine + } } void Map::draw(N5110 &lcd) { @@ -56,4 +65,4 @@ lcd.drawRect(0,_y1_pos,_swidth,_h,FILL_BLACK); lcd.drawRect(0,_y2,_swidth,_sheight / 2,FILL_BLACK); lcd.drawRect(_x2,0,_swidth / 2,_sheight,FILL_BLACK); -} \ No newline at end of file +}