Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of el17dg by
main/main.cpp@19:b78fa41d04a9, 2019-03-21 (annotated)
- Committer:
- Noximilien
- Date:
- Thu Mar 21 15:12:07 2019 +0000
- Revision:
- 19:b78fa41d04a9
- Parent:
- 18:6becc9f9de5e
- Child:
- 20:557e84189a57
I have made a game over screen when the player dies. I made the red light flash (when health is low). I have started making a new intro to my game - animated. I have made a "game over" title - need to add to the screen. Have made multiple led flash.
Who changed what in which revision?
| User | Revision | Line number | New 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 | 19:b78fa41d04a9 | 15 | #include "models.h" |
| Noximilien | 3:10918b0f7a7d | 16 | |
| Noximilien | 0:69abdc43ae39 | 17 | |
| Noximilien | 0:69abdc43ae39 | 18 | |
| Noximilien | 1:5aa2312d3e94 | 19 | N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); |
| Noximilien | 4:02c63aaa2df9 | 20 | |
| Noximilien | 3:10918b0f7a7d | 21 | Gamepad gamepad; |
| Noximilien | 4:02c63aaa2df9 | 22 | |
| Noximilien | 1:5aa2312d3e94 | 23 | AnalogIn pot(PTB2); |
| Noximilien | 2:ec89189860e0 | 24 | AnalogIn x_dir(PTB11); |
| Noximilien | 2:ec89189860e0 | 25 | AnalogIn y_dir(PTB10); |
| Noximilien | 17:69a85c909566 | 26 | AnalogIn rand_y(PTB3); |
| Noximilien | 2:ec89189860e0 | 27 | |
| Noximilien | 4:02c63aaa2df9 | 28 | Menu menu; |
| Noximilien | 4:02c63aaa2df9 | 29 | Game game; |
| Noximilien | 4:02c63aaa2df9 | 30 | |
| Noximilien | 19:b78fa41d04a9 | 31 | struct IntroMove { |
| Noximilien | 19:b78fa41d04a9 | 32 | int x; |
| Noximilien | 19:b78fa41d04a9 | 33 | int y; |
| Noximilien | 19:b78fa41d04a9 | 34 | }; |
| Noximilien | 19:b78fa41d04a9 | 35 | |
| Noximilien | 19:b78fa41d04a9 | 36 | IntroMove lineOne; |
| Noximilien | 19:b78fa41d04a9 | 37 | IntroMove lineTwo; |
| Noximilien | 19:b78fa41d04a9 | 38 | |
| Noximilien | 4:02c63aaa2df9 | 39 | //static const unsigned int MAX_LINE_LENGTH = 14; |
| Noximilien | 3:10918b0f7a7d | 40 | |
| Noximilien | 1:5aa2312d3e94 | 41 | |
| Noximilien | 1:5aa2312d3e94 | 42 | void intro(); |
| Noximilien | 2:ec89189860e0 | 43 | void pointer(int x, int y); |
| Noximilien | 2:ec89189860e0 | 44 | void pointer_position(int menu_number); |
| Noximilien | 3:10918b0f7a7d | 45 | void ship_movement(); |
| Noximilien | 4:02c63aaa2df9 | 46 | //char line_buffer[MAX_LINE_LENGTH]; |
| Noximilien | 2:ec89189860e0 | 47 | |
| Noximilien | 4:02c63aaa2df9 | 48 | |
| Noximilien | 0:69abdc43ae39 | 49 | |
| Noximilien | 4:02c63aaa2df9 | 50 | ScreenOption current_screen = ScreenOption_Menu; |
| Noximilien | 4:02c63aaa2df9 | 51 | |
| Noximilien | 4:02c63aaa2df9 | 52 | void intro(); |
| Noximilien | 4:02c63aaa2df9 | 53 | |
| Noximilien | 1:5aa2312d3e94 | 54 | int main(){ |
| Noximilien | 1:5aa2312d3e94 | 55 | lcd.init(); |
| Noximilien | 4:02c63aaa2df9 | 56 | gamepad.init(); |
| Noximilien | 17:69a85c909566 | 57 | //gamepad.leds_on(); |
| Noximilien | 18:6becc9f9de5e | 58 | //gamepad.led(1,1.0); |
| Noximilien | 1:5aa2312d3e94 | 59 | |
| Noximilien | 1:5aa2312d3e94 | 60 | intro(); |
| Noximilien | 17:69a85c909566 | 61 | srand(rand_y * 1000000); //Makeing the generated y position for the enemy to be trully random. |
| Noximilien | 1:5aa2312d3e94 | 62 | |
| Noximilien | 4:02c63aaa2df9 | 63 | while(1){ //Waiting for the option "start game" to be selected and for the button B to be pressed |
| Noximilien | 1:5aa2312d3e94 | 64 | lcd.clear(); |
| Noximilien | 2:ec89189860e0 | 65 | |
| Noximilien | 4:02c63aaa2df9 | 66 | if (current_screen == ScreenOption_Game) { |
| Noximilien | 19:b78fa41d04a9 | 67 | bool game_is_paused = game.updateAndDraw(); |
| Noximilien | 19:b78fa41d04a9 | 68 | |
| Noximilien | 19:b78fa41d04a9 | 69 | if (game_is_paused) { |
| Noximilien | 4:02c63aaa2df9 | 70 | current_screen = ScreenOption_Menu; |
| Noximilien | 4:02c63aaa2df9 | 71 | } |
| Noximilien | 4:02c63aaa2df9 | 72 | } |
| Noximilien | 4:02c63aaa2df9 | 73 | else if (current_screen == ScreenOption_Menu) { |
| Noximilien | 4:02c63aaa2df9 | 74 | bool wantsToChangeScreen = menu.updateAndDraw(); |
| Noximilien | 4:02c63aaa2df9 | 75 | if (wantsToChangeScreen) { |
| Noximilien | 4:02c63aaa2df9 | 76 | current_screen = menu.getCurrentScreenSelection(); |
| Noximilien | 4:02c63aaa2df9 | 77 | } |
| Noximilien | 2:ec89189860e0 | 78 | } |
| Noximilien | 19:b78fa41d04a9 | 79 | bool game_over = game.checkGameOver(); |
| Noximilien | 19:b78fa41d04a9 | 80 | if (game_over){ |
| Noximilien | 19:b78fa41d04a9 | 81 | lcd.clear(); |
| Noximilien | 19:b78fa41d04a9 | 82 | lcd.printString("GameOver",0,1); |
| Noximilien | 19:b78fa41d04a9 | 83 | lcd.refresh(); |
| Noximilien | 19:b78fa41d04a9 | 84 | wait(1); |
| Noximilien | 19:b78fa41d04a9 | 85 | lcd.printString("Press Y",0,4); |
| Noximilien | 19:b78fa41d04a9 | 86 | lcd.printString("to restart",0,5); |
| Noximilien | 19:b78fa41d04a9 | 87 | lcd.refresh(); |
| Noximilien | 19:b78fa41d04a9 | 88 | bool led_state = false; |
| Noximilien | 19:b78fa41d04a9 | 89 | while (!gamepad.check_event(gamepad.Y_PRESSED)){////////////////////////////// |
| Noximilien | 19:b78fa41d04a9 | 90 | gamepad.led(1,(float)led_state); |
| Noximilien | 19:b78fa41d04a9 | 91 | gamepad.led(2,(float)!led_state); |
| Noximilien | 19:b78fa41d04a9 | 92 | gamepad.led(3,(float)led_state); |
| Noximilien | 19:b78fa41d04a9 | 93 | gamepad.led(4,(float)!led_state); |
| Noximilien | 19:b78fa41d04a9 | 94 | gamepad.led(5,(float)led_state); |
| Noximilien | 19:b78fa41d04a9 | 95 | gamepad.led(6,(float)!led_state); |
| Noximilien | 19:b78fa41d04a9 | 96 | wait(0.5); |
| Noximilien | 19:b78fa41d04a9 | 97 | led_state = !led_state; |
| Noximilien | 19:b78fa41d04a9 | 98 | } |
| Noximilien | 19:b78fa41d04a9 | 99 | current_screen = ScreenOption_Menu; |
| Noximilien | 19:b78fa41d04a9 | 100 | } |
| Noximilien | 2:ec89189860e0 | 101 | |
| Noximilien | 1:5aa2312d3e94 | 102 | lcd.refresh(); |
| Noximilien | 14:e8de27c4d0d4 | 103 | wait_ms(1000/fps); |
| Noximilien | 1:5aa2312d3e94 | 104 | } |
| Noximilien | 1:5aa2312d3e94 | 105 | } |
| Noximilien | 1:5aa2312d3e94 | 106 | |
| Noximilien | 19:b78fa41d04a9 | 107 | void intro(){ |
| Noximilien | 19:b78fa41d04a9 | 108 | lineOne.x = -63; |
| Noximilien | 19:b78fa41d04a9 | 109 | lineOne.y = 2; // This just will be an intro for the game.////////////////// |
| Noximilien | 19:b78fa41d04a9 | 110 | |
| Noximilien | 19:b78fa41d04a9 | 111 | for (int i = 0; i < 67; i++){ |
| Noximilien | 19:b78fa41d04a9 | 112 | lcd.clear(); |
| Noximilien | 19:b78fa41d04a9 | 113 | lcd.drawSprite(lineOne.x + i, lineOne.y, 11, 63, (int*)introLineOne); |
| Noximilien | 19:b78fa41d04a9 | 114 | lcd.refresh(); |
| Noximilien | 19:b78fa41d04a9 | 115 | wait(0.00001); |
| Noximilien | 19:b78fa41d04a9 | 116 | } |
| Noximilien | 19:b78fa41d04a9 | 117 | /*lcd.printString(" StarBarians",1,1); |
| Noximilien | 1:5aa2312d3e94 | 118 | lcd.refresh(); |
| Noximilien | 2:ec89189860e0 | 119 | wait(0.5); |
| Noximilien | 1:5aa2312d3e94 | 120 | lcd.printString(" And the quest ",1,2); |
| Noximilien | 4:02c63aaa2df9 | 121 | lcd.printString(" of the Princess Spacecate",1,3); |
| Noximilien | 19:b78fa41d04a9 | 122 | lcd.printString(" Spacecate",1,4);*/ |
| Noximilien | 19:b78fa41d04a9 | 123 | |
| Noximilien | 4:02c63aaa2df9 | 124 | } |
