Mochu Yao explorer game

Dependencies:   mbed

Surface/surface.h

Committer:
el17my
Date:
2020-05-15
Revision:
39:0debc17bad29
Parent:
29:2d592452e3fb

File content as of revision 39:0debc17bad29:

#ifndef LINE_H
#define LINE_H

#include "mbed.h"
/** Line struct */
struct Line {
 int length;/**< the length of the line. */
 int left;/**< the leftside of the line. */
 int right;/**< the rightside of the line. */
 int y;/**< the height of the line. */
 };

//the line structer will have four main elements 
 
/** surface Class
* @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
* @date April 22th 2020
* @author Yaomochu

@code

#include "mbed.h"
#include "N5110.h"
#include "Gamepad.h"
#include "surface.h"
#include <cstdlib>
#include <ctime>

N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
Gamepad gamepad;
Surface _surface;

Line line_1_value;
Line line_2_value;
Line line_3_value;
Line line_4_value;
Line line_5_value;
Line line_6_value;

int main() {
    _surface.init(20,40);
    while(1) {
    //draw line 1
    _surface.line_1();
    line_1_value = _surface.getline_1();
    lcd.drawLine(line_1_value.left,line_1_value.y,line_1_value.right,line_1_value.y,FILL_BLACK);
    //draw line 2
    _surface.line_2();
    line_2_value = _surface.getline_2();
    lcd.drawLine(line_2_value.left,line_2_value.y,line_2_value.right,line_2_value.y,FILL_BLACK);
    //draw line 3
    _surface.line_3();
    line_3_value = _surface.getline_3();
    lcd.drawLine(line_3_value.left,line_3_value.y,line_3_value.right,line_3_value.y,FILL_BLACK);
    //draw line 4
    _surface.line_4();
    line_4_value = _surface.getline_4();
    lcd.drawLine(line_4_value.left,line_4_value.y,line_4_value.right,line_4_value.y,FILL_BLACK);
    //draw line 5
    _surface.line_5();
    line_3_value = _surface.getline_5();
    lcd.drawLine(line_5_value.left,line_5_value.y,line_5_value.right,line_5_value.y,FILL_BLACK);
    //draw line 6
    _surface.line_6();
    line_6_value = _surface.getline_6();
    lcd.drawLine(line_6_value.left,line_6_value.y,line_6_value.right,line_6_value.y,FILL_BLACK);
    }
}

@endcode
*/

class Surface
{
public:
// Constructor and Destructor.
  /**
  * @brief Constructor @details Non user specified.
  */
Surface();
/**
  * @brief Destructor @details Non user specified.
  */
~Surface();
/**
  * @brief init the line at first to set the initial position.
  * @param y1 @details the lower line height.
  * @param y2 @details the upper line height.
  */
void init(int y1, int y2);
/**
  * @brief set line1 movement.
  */
void line_1();
/**
  * @brief set line2 movement.
  */
void line_2();
/**
  * @brief set line3 movement.
  */
void line_3();
/**
  * @brief set line4 movement.
  */
void line_4();
/**
  * @brief set line5 movement.
  */
void line_5();
/**
  * @brief set line6 movement.
  */
void line_6();
 // Accessors.
  /**
  * @brief Gets line 1.
  * @returns Line 1 (type: struct, Line)
  */
Line getline_1();
  /**
  * @brief Gets line 2.
  * @returns Line 2 (type: struct, Line)
  */
Line getline_2();
  /**
  * @brief Gets line 3.
  * @returns Line 3 (type: struct, Line)
  */
Line getline_3();
  /**
  * @brief Gets line 4.
  * @returns Line 4 (type: struct, Line)
  */
Line getline_4();
  /**
  * @brief Gets line 5.
  * @returns Line 5 (type: struct, Line)
  */
Line getline_5();
  /**
  * @brief Gets line 6.
  * @returns Line 6 (type: struct, Line)
  */
Line getline_6();

private:
Line _line_1;
Line _line_2;
Line _line_3;
Line _line_4;
Line _line_5;
Line _line_6;

};
#endif