Henry Triff / Mbed 2 deprecated ELEC2645_Project_el18ht

Dependencies:   mbed

Committer:
HenryWTriff
Date:
Tue Feb 11 17:28:56 2020 +0000
Revision:
5:2d9f3c36bcb9
Parent:
3:ceed6d026b8b
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 2:d08b6a1eaf2b 1 #ifndef GRAPHICS_H
HenryWTriff 2:d08b6a1eaf2b 2 #define GRAPHICS_H
HenryWTriff 2:d08b6a1eaf2b 3
HenryWTriff 2:d08b6a1eaf2b 4 #include "mbed.h"
HenryWTriff 2:d08b6a1eaf2b 5 #include "Gamepad.h"
HenryWTriff 2:d08b6a1eaf2b 6 #include "N5110.h"
HenryWTriff 2:d08b6a1eaf2b 7 #include "Graphics.h"
HenryWTriff 3:ceed6d026b8b 8 #include "Controls.h"
HenryWTriff 5:2d9f3c36bcb9 9 #include "Mechanics.h"
HenryWTriff 3:ceed6d026b8b 10
HenryWTriff 3:ceed6d026b8b 11 #ifndef STRUCTS
HenryWTriff 3:ceed6d026b8b 12 #define STRUCTS
HenryWTriff 2:d08b6a1eaf2b 13
HenryWTriff 2:d08b6a1eaf2b 14 //STRUCTS
HenryWTriff 2:d08b6a1eaf2b 15 struct Point_2D {
HenryWTriff 2:d08b6a1eaf2b 16 float x;
HenryWTriff 2:d08b6a1eaf2b 17 float y;
HenryWTriff 2:d08b6a1eaf2b 18 };
HenryWTriff 2:d08b6a1eaf2b 19 struct Line_2D {
HenryWTriff 2:d08b6a1eaf2b 20 Point_2D from;
HenryWTriff 2:d08b6a1eaf2b 21 Point_2D to;
HenryWTriff 2:d08b6a1eaf2b 22 };
HenryWTriff 2:d08b6a1eaf2b 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 3:ceed6d026b8b 34 struct Map_Data {
HenryWTriff 3:ceed6d026b8b 35 int number_of_track_lines;
HenryWTriff 3:ceed6d026b8b 36 int number_of_dotted_lines;
HenryWTriff 3:ceed6d026b8b 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 3:ceed6d026b8b 44 };
HenryWTriff 3:ceed6d026b8b 45
HenryWTriff 3:ceed6d026b8b 46 #endif
HenryWTriff 3:ceed6d026b8b 47
HenryWTriff 2:d08b6a1eaf2b 48 class Graphics
HenryWTriff 2:d08b6a1eaf2b 49 {
HenryWTriff 5:2d9f3c36bcb9 50 public:
HenryWTriff 2:d08b6a1eaf2b 51 //SCREEN SETTINGS
HenryWTriff 2:d08b6a1eaf2b 52 void Change_Contrast(N5110 &LCD, Gamepad &Device);
HenryWTriff 2:d08b6a1eaf2b 53 //GRAPHICS
HenryWTriff 5:2d9f3c36bcb9 54 void Draw_Map(
HenryWTriff 5:2d9f3c36bcb9 55 Point_2D translation,
HenryWTriff 5:2d9f3c36bcb9 56 int angle, float squish,
HenryWTriff 5:2d9f3c36bcb9 57 Line_2D *Track_Lines,
HenryWTriff 5:2d9f3c36bcb9 58 Line_2D *Track_Dotted_Lines,
HenryWTriff 5:2d9f3c36bcb9 59 Line_2D *Track_Walls,
HenryWTriff 5:2d9f3c36bcb9 60 Point_2D *Track_Flags,
HenryWTriff 5:2d9f3c36bcb9 61 Map_Data map_info,
HenryWTriff 5:2d9f3c36bcb9 62 N5110 &LCD
HenryWTriff 5:2d9f3c36bcb9 63 );
HenryWTriff 5:2d9f3c36bcb9 64 void Draw_Laps(int laps, N5110 &LCD);
HenryWTriff 5:2d9f3c36bcb9 65
HenryWTriff 5:2d9f3c36bcb9 66 private:
HenryWTriff 2:d08b6a1eaf2b 67 //TRANSFORM
HenryWTriff 2:d08b6a1eaf2b 68 Point_2D Rotate_Point(Point_2D point, float angle);
HenryWTriff 2:d08b6a1eaf2b 69 Point_2D Translate_Point(Point_2D point, int translate_x, int translate_y);
HenryWTriff 2:d08b6a1eaf2b 70 Point_2D Squish_Point(Point_2D point, float squish);
HenryWTriff 2:d08b6a1eaf2b 71 //MATH
HenryWTriff 2:d08b6a1eaf2b 72 int Round(float number);
HenryWTriff 2:d08b6a1eaf2b 73 float Gradient(Point_2D from, Point_2D to);
HenryWTriff 2:d08b6a1eaf2b 74 bool Gradient_Check_Infinate(Point_2D from, Point_2D to);
HenryWTriff 2:d08b6a1eaf2b 75 //DRAW
HenryWTriff 2:d08b6a1eaf2b 76 void Graphics_Draw_Line(Point_2D from, Point_2D to, bool solid, N5110 &LCD);
HenryWTriff 3:ceed6d026b8b 77 void Graphics_Draw_Sprite(Point_2D point, int x_size, int y_size, int *sprite, N5110 &LCD);
HenryWTriff 5:2d9f3c36bcb9 78 void Graphics_Draw_Wall(Point_2D from, Point_2D to, int height, N5110 &LCD);
HenryWTriff 5:2d9f3c36bcb9 79
HenryWTriff 2:d08b6a1eaf2b 80 };
HenryWTriff 2:d08b6a1eaf2b 81
HenryWTriff 2:d08b6a1eaf2b 82 #endif