Initial publish

Dependencies:   mbed

Fork of el17dg by Dmitrijs Griskovs

Committer:
Noximilien
Date:
Tue Mar 19 10:41:51 2019 +0000
Revision:
17:69a85c909566
Parent:
14:e8de27c4d0d4
Child:
18:6becc9f9de5e
I have made the enemy appear at truly random positions using srand, I have made player's life show as LEDs light.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Noximilien 0:69abdc43ae39 1 /*
Noximilien 0:69abdc43ae39 2 ELEC2645 Embedded Systems Project
Noximilien 0:69abdc43ae39 3 School of Electronic & Electrical Engineering
Noximilien 0:69abdc43ae39 4 University of Leeds
Noximilien 0:69abdc43ae39 5 Name: Dmitrijs Griskovs
Noximilien 0:69abdc43ae39 6 Username: el17dg
Noximilien 0:69abdc43ae39 7 Student ID Number: 201160286
Noximilien 0:69abdc43ae39 8 Date: start - 25/02/2019
Noximilien 0:69abdc43ae39 9 */
Noximilien 0:69abdc43ae39 10
Noximilien 0:69abdc43ae39 11
Noximilien 4:02c63aaa2df9 12 #include "main.h"
Noximilien 3:10918b0f7a7d 13 #include "game.h"
Noximilien 4:02c63aaa2df9 14 #include "menu.h"
Noximilien 3:10918b0f7a7d 15
Noximilien 0:69abdc43ae39 16
Noximilien 0:69abdc43ae39 17
Noximilien 1:5aa2312d3e94 18 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
Noximilien 4:02c63aaa2df9 19
Noximilien 3:10918b0f7a7d 20 Gamepad gamepad;
Noximilien 4:02c63aaa2df9 21
Noximilien 1:5aa2312d3e94 22 AnalogIn pot(PTB2);
Noximilien 2:ec89189860e0 23 AnalogIn x_dir(PTB11);
Noximilien 2:ec89189860e0 24 AnalogIn y_dir(PTB10);
Noximilien 17:69a85c909566 25 AnalogIn rand_y(PTB3);
Noximilien 2:ec89189860e0 26
Noximilien 4:02c63aaa2df9 27 Menu menu;
Noximilien 4:02c63aaa2df9 28 Game game;
Noximilien 4:02c63aaa2df9 29
Noximilien 4:02c63aaa2df9 30 //static const unsigned int MAX_LINE_LENGTH = 14;
Noximilien 3:10918b0f7a7d 31
Noximilien 1:5aa2312d3e94 32
Noximilien 1:5aa2312d3e94 33 void intro();
Noximilien 2:ec89189860e0 34 void pointer(int x, int y);
Noximilien 2:ec89189860e0 35 void pointer_position(int menu_number);
Noximilien 3:10918b0f7a7d 36 void ship_movement();
Noximilien 4:02c63aaa2df9 37 //char line_buffer[MAX_LINE_LENGTH];
Noximilien 2:ec89189860e0 38
Noximilien 4:02c63aaa2df9 39
Noximilien 0:69abdc43ae39 40
Noximilien 4:02c63aaa2df9 41 ScreenOption current_screen = ScreenOption_Menu;
Noximilien 4:02c63aaa2df9 42
Noximilien 4:02c63aaa2df9 43 void intro();
Noximilien 4:02c63aaa2df9 44
Noximilien 1:5aa2312d3e94 45 int main(){
Noximilien 1:5aa2312d3e94 46 lcd.init();
Noximilien 4:02c63aaa2df9 47 gamepad.init();
Noximilien 17:69a85c909566 48 //gamepad.leds_on();
Noximilien 17:69a85c909566 49 gamepad.led(1,1.0);
Noximilien 1:5aa2312d3e94 50
Noximilien 1:5aa2312d3e94 51 intro();
Noximilien 17:69a85c909566 52 srand(rand_y * 1000000); //Makeing the generated y position for the enemy to be trully random.
Noximilien 1:5aa2312d3e94 53
Noximilien 4:02c63aaa2df9 54 while(1){ //Waiting for the option "start game" to be selected and for the button B to be pressed
Noximilien 1:5aa2312d3e94 55 lcd.clear();
Noximilien 2:ec89189860e0 56
Noximilien 4:02c63aaa2df9 57 if (current_screen == ScreenOption_Game) {
Noximilien 4:02c63aaa2df9 58 bool gameIsPaused = game.updateAndDraw();
Noximilien 4:02c63aaa2df9 59 if (gameIsPaused) {
Noximilien 4:02c63aaa2df9 60 current_screen = ScreenOption_Menu;
Noximilien 4:02c63aaa2df9 61 }
Noximilien 4:02c63aaa2df9 62 }
Noximilien 4:02c63aaa2df9 63 else if (current_screen == ScreenOption_Menu) {
Noximilien 4:02c63aaa2df9 64 bool wantsToChangeScreen = menu.updateAndDraw();
Noximilien 4:02c63aaa2df9 65 if (wantsToChangeScreen) {
Noximilien 4:02c63aaa2df9 66 current_screen = menu.getCurrentScreenSelection();
Noximilien 4:02c63aaa2df9 67 }
Noximilien 2:ec89189860e0 68 }
Noximilien 2:ec89189860e0 69
Noximilien 1:5aa2312d3e94 70 lcd.refresh();
Noximilien 14:e8de27c4d0d4 71 wait_ms(1000/fps);
Noximilien 1:5aa2312d3e94 72 }
Noximilien 1:5aa2312d3e94 73 }
Noximilien 1:5aa2312d3e94 74
Noximilien 4:02c63aaa2df9 75 void intro(){ // This just will be an intro for the game.
Noximilien 1:5aa2312d3e94 76 lcd.clear();
Noximilien 1:5aa2312d3e94 77 lcd.printString(" StarBarians",1,1);
Noximilien 1:5aa2312d3e94 78 lcd.refresh();
Noximilien 2:ec89189860e0 79 wait(0.5);
Noximilien 1:5aa2312d3e94 80 lcd.printString(" And the quest ",1,2);
Noximilien 4:02c63aaa2df9 81 lcd.printString(" of the Princess Spacecate",1,3);
Noximilien 4:02c63aaa2df9 82 lcd.printString(" Spacecate",1,4);
Noximilien 1:5aa2312d3e94 83 lcd.refresh();
Noximilien 2:ec89189860e0 84 wait(0.5);
Noximilien 4:02c63aaa2df9 85 }