Henry Triff / Mbed 2 deprecated ELEC2645_Project_el18ht

Dependencies:   mbed

Committer:
HenryWTriff
Date:
Tue Feb 11 17:28:56 2020 +0000
Revision:
5:2d9f3c36bcb9
Child:
6:5f76dd718dc3
Off-track reduces speed, out of bounds is a thing, lap counter

Who changed what in which revision?

UserRevisionLine numberNew contents of line
HenryWTriff 5:2d9f3c36bcb9 1 #ifndef MECHANICS_H
HenryWTriff 5:2d9f3c36bcb9 2 #define MECHANICS_H
HenryWTriff 5:2d9f3c36bcb9 3
HenryWTriff 5:2d9f3c36bcb9 4 #include "mbed.h"
HenryWTriff 5:2d9f3c36bcb9 5 #include "Gamepad.h"
HenryWTriff 5:2d9f3c36bcb9 6 #include "N5110.h"
HenryWTriff 5:2d9f3c36bcb9 7 #include "Graphics.h"
HenryWTriff 5:2d9f3c36bcb9 8 #include "Controls.h"
HenryWTriff 5:2d9f3c36bcb9 9
HenryWTriff 5:2d9f3c36bcb9 10
HenryWTriff 5:2d9f3c36bcb9 11 #ifndef STRUCTS
HenryWTriff 5:2d9f3c36bcb9 12 #define STRUCTS
HenryWTriff 5:2d9f3c36bcb9 13
HenryWTriff 5:2d9f3c36bcb9 14 //STRUCTS
HenryWTriff 5:2d9f3c36bcb9 15 struct Point_2D {
HenryWTriff 5:2d9f3c36bcb9 16 float x;
HenryWTriff 5:2d9f3c36bcb9 17 float y;
HenryWTriff 5:2d9f3c36bcb9 18 };
HenryWTriff 5:2d9f3c36bcb9 19 struct Line_2D {
HenryWTriff 5:2d9f3c36bcb9 20 Point_2D from;
HenryWTriff 5:2d9f3c36bcb9 21 Point_2D to;
HenryWTriff 5:2d9f3c36bcb9 22 };
HenryWTriff 5:2d9f3c36bcb9 23
HenryWTriff 5:2d9f3c36bcb9 24 struct Square_2D {
HenryWTriff 5:2d9f3c36bcb9 25 Point_2D TL;
HenryWTriff 5:2d9f3c36bcb9 26 Point_2D BR;
HenryWTriff 5:2d9f3c36bcb9 27 };
HenryWTriff 5:2d9f3c36bcb9 28 struct Triangle_2D {
HenryWTriff 5:2d9f3c36bcb9 29 Point_2D TL;
HenryWTriff 5:2d9f3c36bcb9 30 Point_2D BR;
HenryWTriff 5:2d9f3c36bcb9 31 int Type;
HenryWTriff 5:2d9f3c36bcb9 32 };
HenryWTriff 5:2d9f3c36bcb9 33
HenryWTriff 5:2d9f3c36bcb9 34 struct Map_Data {
HenryWTriff 5:2d9f3c36bcb9 35 int number_of_track_lines;
HenryWTriff 5:2d9f3c36bcb9 36 int number_of_dotted_lines;
HenryWTriff 5:2d9f3c36bcb9 37 int number_of_flags;
HenryWTriff 5:2d9f3c36bcb9 38 int number_of_walls;
HenryWTriff 5:2d9f3c36bcb9 39 int number_of_off_track_squares;
HenryWTriff 5:2d9f3c36bcb9 40 int number_of_off_track_triangles;
HenryWTriff 5:2d9f3c36bcb9 41 int number_of_out_of_bounds_squares;
HenryWTriff 5:2d9f3c36bcb9 42 int number_of_out_of_bounds_triangles;
HenryWTriff 5:2d9f3c36bcb9 43 int number_of_gates;
HenryWTriff 5:2d9f3c36bcb9 44 };
HenryWTriff 5:2d9f3c36bcb9 45
HenryWTriff 5:2d9f3c36bcb9 46 #endif
HenryWTriff 5:2d9f3c36bcb9 47
HenryWTriff 5:2d9f3c36bcb9 48 class Mechanics
HenryWTriff 5:2d9f3c36bcb9 49 {
HenryWTriff 5:2d9f3c36bcb9 50 public:
HenryWTriff 5:2d9f3c36bcb9 51 bool Is_Offtrack(Point_2D position, Square_2D offtrack_square[], Triangle_2D offtrack_triangle[], Map_Data map_info);
HenryWTriff 5:2d9f3c36bcb9 52 bool Is_Out_Of_Bounds(Point_2D position, Square_2D offtrack_square[], Triangle_2D offtrack_triangle[], Map_Data map_info);
HenryWTriff 5:2d9f3c36bcb9 53 int Get_Gate(Square_2D gates[], int number_of_gates, Point_2D position, int current_gate);
HenryWTriff 5:2d9f3c36bcb9 54 int Get_Laps(int laps, Square_2D gates[], int number_of_gates, Point_2D position, int current_gate);
HenryWTriff 5:2d9f3c36bcb9 55
HenryWTriff 5:2d9f3c36bcb9 56 private:
HenryWTriff 5:2d9f3c36bcb9 57 bool Is_Offtrack_Square(Square_2D offtrack[], int size, Point_2D position);
HenryWTriff 5:2d9f3c36bcb9 58 bool Is_Offtrack_Triangle(Triangle_2D offtrack[], int size, Point_2D position);
HenryWTriff 5:2d9f3c36bcb9 59 bool Is_Out_Of_Bounds_Square(Square_2D out_of_bounds[], int size, Point_2D position);
HenryWTriff 5:2d9f3c36bcb9 60 bool Is_Out_Of_Bounds_Triangle(Triangle_2D out_of_bounds[], int size, Point_2D position);
HenryWTriff 5:2d9f3c36bcb9 61
HenryWTriff 5:2d9f3c36bcb9 62 };
HenryWTriff 5:2d9f3c36bcb9 63
HenryWTriff 5:2d9f3c36bcb9 64 #endif