Mochu Yao explorer game
Dependencies: mbed
Diff: Surface/surface.cpp
- Revision:
- 8:201ef0618b7d
- Parent:
- 7:88c4ba6bb37b
- Child:
- 17:1b4ecc01b79f
diff -r 88c4ba6bb37b -r 201ef0618b7d Surface/surface.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Surface/surface.cpp Mon Apr 27 08:41:29 2020 +0000 @@ -0,0 +1,147 @@ +#include "surface.h" + +// Constructor and destructor. +Surface::Surface() {} +Surface::~Surface() {} + +void Surface::init(int y1, int y2) { + //makesure that each line can not be constant or it will be too easy +_line_1.left = 0; +_line_1.right = 25; +_line_1.y = y1; +_line_1.length = 25; +_line_2.left = 30; +_line_2.right = 50; +_line_2.y = y1; +_line_2.length = 20; +_line_3.left = 65; +_line_3.right = 80; +_line_3.y = y1; +_line_3.length = 15; +//the line 1 to line 3 is on the lower level and than the line 4 to line 5 is on the upper level +// ---line 4--- ---line 5--- ---line 6--- +// ---line 3--- ---line 2--- ---line 1--- +_line_4.left = 0; +_line_4.right = 20; +_line_4.y = y2; +_line_4.length = 20; +_line_5.left = 25; +_line_5.right = 50; +_line_5.y = y2; +_line_5.length = 25; +_line_6.left = 60; +_line_6.right = 80; +_line_6.y = y2; +_line_6.length = 20; +}; +//the line need to move form right to left so the line_1 function should have these functions +//1 the leftside of the line move toward right then the rightside should also move to the right to keep the length +//2 the line will be random length but must be suitable +//3 makesure there are two surface for player to stay +void Surface::line_1() { + if(_line_1.left > 0) { + _line_1.left-- ;} + //the left side will keep moving until it disappear on the screen which also means equal to zero + if (_line_1.left + _line_1.length < 80) { + _line_1.right-- ;} + //this line is mainly for regeneration of the line because I want the line to first disapper and then appear on the another edge + if (_line_1.right <= 0) { + _line_1.right--; + _line_1.left = 0; } + //if the left edge of the line is zero it will keep zero until the right edge equals to zero + if (_line_1.right <= 0) { + _line_1.left = 80; + _line_1.right = 80;} + _line_1.length = (rand() %15) + 10; } + +void Surface::line_2() { + if(_line_2.left > 0) { + _line_2.left-- ;} + //the left side will keep moving until it disappear on the screen which also means equal to zero + if (_line_2.left + _line_1.length < 80) { + _line_2.right-- ;} + //this line is mainly for regeneration of the line because I want the line to first disapper and then appear on the another edge + if (_line_2.right <= 0) { + _line_2.right--; + _line_2.left = 0; } + //if the left edge of the line is zero it will keep zero until the right edge equals to zero + if (_line_2.right <= 0) { + _line_2.left = 80; + _line_2.right = 80;} + _line_2.length = (rand() %15) + 10; } + +void Surface::line_3() { + if(_line_3.left > 0) { + _line_3.left-- ;} + //the left side will keep moving until it disappear on the screen which also means equal to zero + if (_line_3.left + _line_1.length < 80) { + _line_3.right-- ;} + //this line is mainly for regeneration of the line because I want the line to first disapper and then appear on the another edge + if (_line_3.right <= 0) { + _line_3.right--; + _line_3.left = 0; } + //if the left edge of the line is zero it will keep zero until the right edge equals to zero + if (_line_3.right <= 0) { + _line_3.left = 80; + _line_3.right = 80;} + _line_3.length = (rand() %15) + 10; } + +void Surface::line_4() { + if(_line_4.left > 0) { + _line_4.left-- ;} + //the left side will keep moving until it disappear on the screen which also means equal to zero + if (_line_4.left + _line_1.length < 80) { + _line_4.right-- ;} + //this line is mainly for regeneration of the line because I want the line to first disapper and then appear on the another edge + if (_line_4.right <= 0) { + _line_4.right--; + _line_4.left = 0; } + //if the left edge of the line is zero it will keep zero until the right edge equals to zero + if (_line_4.right <= 0) { + _line_4.left = 80; + _line_4.right = 80;} + _line_4.length = (rand() %15) + 10; } + +void Surface::line_5() { + if(_line_5.left > 0) { + _line_5.left-- ;} + //the left side will keep moving until it disappear on the screen which also means equal to zero + if (_line_5.left + _line_1.length < 80) { + _line_5.right-- ;} + //this line is mainly for regeneration of the line because I want the line to first disapper and then appear on the another edge + if (_line_5.right <= 0) { + _line_5.right--; + _line_5.left = 0; } + //if the left edge of the line is zero it will keep zero until the right edge equals to zero + if (_line_5.right <= 0) { + _line_5.left = 80; + _line_5.right = 80;} + _line_5.length = (rand() %15) + 10; } + +void Surface::line_6() { + if(_line_6.left > 0) { + _line_6.left-- ;} + //the left side will keep moving until it disappear on the screen which also means equal to zero + if (_line_6.left + _line_1.length < 80) { + _line_6.right-- ;} + //this line is mainly for regeneration of the line because I want the line to first disapper and then appear on the another edge + if (_line_6.right <= 0) { + _line_6.right--; + _line_6.left = 0; } + //if the left edge of the line is zero it will keep zero until the right edge equals to zero + if (_line_6.right <= 0) { + _line_6.left = 80; + _line_6.right = 80;} + _line_6.length = (rand() %15) + 10; } + +Line Surface::getline_1(){return _line_1;} +Line Surface::getline_2(){return _line_2;} +Line Surface::getline_3(){return _line_3;} +Line Surface::getline_4(){return _line_4;} +Line Surface::getline_5(){return _line_5;} +Line Surface::getline_6(){return _line_6;} + + + + +