Henry Triff
/
ELEC2645_Project_el18ht
main.cpp
- Committer:
- HenryWTriff
- Date:
- 2020-02-11
- Revision:
- 3:ceed6d026b8b
- Parent:
- 2:d08b6a1eaf2b
- Child:
- 4:9f41fc1c2ad1
File content as of revision 3:ceed6d026b8b:
/* ELEC2645 Embedded Systems Project School of Electronic & Electrical Engineering University of Leeds 2019/20 Name: Henry Triff Username: el18ht Student ID Number: 201224295 Date: 10/02/2020 */ //LIBRARIES #include "mbed.h" #include "Gamepad.h" #include "N5110.h" #include "Graphics.h" #include "Controls.h" //OBJECTS Gamepad Device; N5110 LCD; Graphics Graphics; Controls Controls; #ifndef STRUCTS #define STRUCTS //STRUCTS struct Point_2D { float x; float y; }; struct Line_2D { Point_2D from; Point_2D to; }; struct Map_Data { int number_of_track_lines; int number_of_dotted_lines; int number_of_flags; }; #endif //MAP - 1 Map_Data Map_1 = {36,1,2}; //Lines const Line_2D Map_1_Track_Lines[36] = { //Inside Line {{-20,0},{-20,80}}, {{-20,80},{-40,100}}, {{-40,100},{-80,100}}, {{-80,100},{-100,80}}, {{-100,80},{-100,40}}, {{-100,40},{-140,0}}, {{-140,0},{-220,0}}, {{-220,0},{-260,40}}, {{-260,40},{-260,80}}, {{-260,80},{-280,100}}, {{-280,100},{-320,100}}, {{-320,100},{-360,60}}, {{-360,60},{-360,-100}}, {{-360,-100},{-300,-160}}, {{-300,-160},{-220,-80}}, {{-220,-80},{-100,-80}}, {{-100,-80},{-20,0}}, //Outside Line {{20,-20},{20,100}}, {{20,100},{-20,140}}, {{-20,140},{-100,140}}, {{-100,140},{-140,100}}, {{-140,100},{-140,60}}, {{-140,60},{-160,40}}, {{-160,40},{-200,40}}, {{-200,40},{-220,60}}, {{-220,60},{-220,100}}, {{-220,100},{-260,140}}, {{-260,140},{-340,140}}, {{-340,140},{-400,80}}, {{-400,80},{-400,-120}}, {{-400,-120},{-320,-200}}, {{-320,-200},{-280,-200}}, {{-280,-200},{-200,-120}}, {{-200,-120},{-80,-120}}, {{-80,-120},{20,-20}}, }; const Line_2D Map_1_Track_Dotted_Lines[1] = { {{-20,0},{20,0}}, }; Point_2D Map_1_Flags[2] = { {-20,0}, {24,0} }; //GLOBAL VARIABLES //Transform int angle = 0; Point_2D translation = {0,0}; float squish = 0.15; //Vehicle parameters float speed = 0; float max_speed = 4; int handling = 1; //Game parameters int game_fps = 30; int main() { LCD.init(); Device.init(); while(1) { angle = Controls.Get_Angle(angle, handling, Device); translation = Controls.Get_Translation(translation, angle, speed, max_speed, Device); Graphics.Change_Contrast(LCD,Device); Graphics.Draw_Map(game_fps, translation, angle, squish, (Line_2D *) Map_1_Track_Lines, (Line_2D *)Map_1_Track_Dotted_Lines, (Point_2D *)Map_1_Flags, Map_1, LCD); } }