444444444444

Dependencies:   mbed CXK

Committer:
Jenny121
Date:
Mon May 06 06:42:41 2019 +0000
Revision:
13:45354ed42401
Parent:
12:f8eb397226bc
1122

Who changed what in which revision?

UserRevisionLine numberNew contents of line
eencae 0:e1442f3aa3c7 1 ///////// pre-processor directives ////////
eencae 0:e1442f3aa3c7 2 #include "mbed.h"
eencae 0:e1442f3aa3c7 3 #include "Gamepad.h"
eencae 0:e1442f3aa3c7 4 #include "N5110.h"
Jenny121 12:f8eb397226bc 5 #include "cxkEngine.h"
eencae 0:e1442f3aa3c7 6
valavanisalex 10:167d0aa1c9b3 7 #ifdef WITH_TESTING
valavanisalex 10:167d0aa1c9b3 8 # include "tests.h"
valavanisalex 10:167d0aa1c9b3 9 #endif
valavanisalex 10:167d0aa1c9b3 10
Jenny121 12:f8eb397226bc 11 /* ELEC2645 Embeeded System Project
Jenny121 12:f8eb397226bc 12 School of Elctronic & Electrical Enigneering
Jenny121 12:f8eb397226bc 13 University of Leeds
Jenny121 12:f8eb397226bc 14
Jenny121 12:f8eb397226bc 15 Name : Zhang Xinyu
Jenny121 12:f8eb397226bc 16 Username : Zhang Xin yu
Jenny121 12:f8eb397226bc 17 Student ID number : 201090208
Jenny121 12:f8eb397226bc 18 Date : 2019. 05.6
Jenny121 12:f8eb397226bc 19
Jenny121 12:f8eb397226bc 20 */
Jenny121 12:f8eb397226bc 21
eencae 1:25a839625a1e 22
eencae 0:e1442f3aa3c7 23 /////////////// structs /////////////////
eencae 0:e1442f3aa3c7 24 struct UserInput {
eencae 0:e1442f3aa3c7 25 Direction d;
Jenny121 12:f8eb397226bc 26 float vara; // vara is the magnitude of the joystich
eencae 0:e1442f3aa3c7 27 };
Jenny121 12:f8eb397226bc 28
eencae 0:e1442f3aa3c7 29 /////////////// objects ///////////////
eencae 0:e1442f3aa3c7 30 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
eencae 0:e1442f3aa3c7 31 Gamepad pad;
Jenny121 12:f8eb397226bc 32 cxkEngine basketball;
eencae 6:d9d05b321b4d 33
Jenny121 12:f8eb397226bc 34 ///////////// prototypes define the void ///////////////
eencae 0:e1442f3aa3c7 35 void init();
eencae 0:e1442f3aa3c7 36 void update_game(UserInput input);
Jenny121 12:f8eb397226bc 37 void render();// main contain
eencae 3:910d7e87f367 38 void welcome();
Jenny121 12:f8eb397226bc 39 void over();
eencae 6:d9d05b321b4d 40
eencae 0:e1442f3aa3c7 41 ///////////// functions ////////////////
eencae 0:e1442f3aa3c7 42 int main()
eencae 0:e1442f3aa3c7 43 {
valavanisalex 10:167d0aa1c9b3 44
Jenny121 12:f8eb397226bc 45 int fps = 8; // frames 8k per second
eencae 0:e1442f3aa3c7 46
eencae 6:d9d05b321b4d 47 init(); // initialise and then display welcome screen...
eencae 6:d9d05b321b4d 48 welcome(); // waiting for the user to start
eencae 1:25a839625a1e 49
eencae 6:d9d05b321b4d 50 render(); // first draw the initial frame
eencae 6:d9d05b321b4d 51 wait(1.0f/fps); // and wait for one frame period
eencae 6:d9d05b321b4d 52
eencae 0:e1442f3aa3c7 53
eencae 4:d349e5d847cf 54 // game loop - read input, update the game state and render the display
eencae 0:e1442f3aa3c7 55 while (1) {
Jenny121 12:f8eb397226bc 56 basketball.read_input(pad);
Jenny121 12:f8eb397226bc 57 basketball.update(pad);
eencae 0:e1442f3aa3c7 58 render();
eencae 0:e1442f3aa3c7 59 wait(1.0f/fps);
eencae 0:e1442f3aa3c7 60 }
eencae 0:e1442f3aa3c7 61 }
eencae 0:e1442f3aa3c7 62
eencae 6:d9d05b321b4d 63 // initialies all classes and libraries
eencae 0:e1442f3aa3c7 64 void init()
eencae 0:e1442f3aa3c7 65 {
eencae 3:910d7e87f367 66 // need to initialise LCD and Gamepad
eencae 0:e1442f3aa3c7 67 lcd.init();
eencae 0:e1442f3aa3c7 68 pad.init();
eencae 3:910d7e87f367 69
eencae 6:d9d05b321b4d 70 // initialise the game with correct ball and paddle sizes
Jenny121 12:f8eb397226bc 71 basketball.init(2,8,2,3);
eencae 0:e1442f3aa3c7 72
eencae 0:e1442f3aa3c7 73 }
eencae 0:e1442f3aa3c7 74
eencae 6:d9d05b321b4d 75 // this function draws each frame on the LCD
eencae 0:e1442f3aa3c7 76 void render()
eencae 0:e1442f3aa3c7 77 {
eencae 3:910d7e87f367 78 // clear screen, re-draw and refresh
eencae 3:910d7e87f367 79 lcd.clear();
Jenny121 12:f8eb397226bc 80 basketball.draw(lcd);
eencae 0:e1442f3aa3c7 81 lcd.refresh();
eencae 3:910d7e87f367 82 }
eencae 3:910d7e87f367 83
eencae 6:d9d05b321b4d 84 // simple splash screen displayed on start-up
eencae 3:910d7e87f367 85 void welcome() {
eencae 3:910d7e87f367 86
Jenny121 12:f8eb397226bc 87 lcd.printString(" U beautiful",0,1);
Jenny121 12:f8eb397226bc 88 lcd.printString("zhang xinyu",0,2);
eencae 4:d349e5d847cf 89 lcd.printString(" Press Start ",0,4);
eencae 3:910d7e87f367 90 lcd.refresh();
eencae 3:910d7e87f367 91
eencae 3:910d7e87f367 92 // wait flashing LEDs until start button is pressed
eencae 3:910d7e87f367 93 while ( pad.check_event(Gamepad::START_PRESSED) == false) {
eencae 3:910d7e87f367 94 pad.leds_on();
eencae 3:910d7e87f367 95 wait(0.1);
eencae 3:910d7e87f367 96 pad.leds_off();
eencae 3:910d7e87f367 97 wait(0.1);
eencae 3:910d7e87f367 98 }
eencae 3:910d7e87f367 99
eencae 0:e1442f3aa3c7 100 }