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@3:10918b0f7a7d, 2019-02-28 (annotated)
- Committer:
- Noximilien
- Date:
- Thu Feb 28 16:13:06 2019 +0000
- Revision:
- 3:10918b0f7a7d
- Parent:
- main.cpp@2:ec89189860e0
- Child:
- 4:02c63aaa2df9
I have created game.cpp file where the actual game will be happening. I have created one model of a spaceship and stored in header file. Have linked game and main together. ; ; However I cannot find a way of how to read buttons.
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 | 1:5aa2312d3e94 | 12 | #include "mbed.h" |
Noximilien | 1:5aa2312d3e94 | 13 | #include "N5110.h" |
Noximilien | 2:ec89189860e0 | 14 | #include "Gamepad.h" |
Noximilien | 3:10918b0f7a7d | 15 | #include "game.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 | 3:10918b0f7a7d | 20 | Gamepad gamepad; |
Noximilien | 1:5aa2312d3e94 | 21 | AnalogIn pot(PTB2); |
Noximilien | 1:5aa2312d3e94 | 22 | |
Noximilien | 2:ec89189860e0 | 23 | AnalogIn x_dir(PTB11); |
Noximilien | 2:ec89189860e0 | 24 | AnalogIn y_dir(PTB10); |
Noximilien | 2:ec89189860e0 | 25 | |
Noximilien | 3:10918b0f7a7d | 26 | static const unsigned int MAX_LINE_LENGTH = 14; |
Noximilien | 3:10918b0f7a7d | 27 | |
Noximilien | 1:5aa2312d3e94 | 28 | |
Noximilien | 1:5aa2312d3e94 | 29 | void intro(); |
Noximilien | 2:ec89189860e0 | 30 | void pointer(int x, int y); |
Noximilien | 2:ec89189860e0 | 31 | void pointer_position(int menu_number); |
Noximilien | 3:10918b0f7a7d | 32 | void ship_movement(); |
Noximilien | 3:10918b0f7a7d | 33 | |
Noximilien | 3:10918b0f7a7d | 34 | char line_buffer[MAX_LINE_LENGTH]; |
Noximilien | 2:ec89189860e0 | 35 | |
Noximilien | 2:ec89189860e0 | 36 | int menu_number = 0; |
Noximilien | 2:ec89189860e0 | 37 | int total_menu_number = 3; |
Noximilien | 2:ec89189860e0 | 38 | float time_delay = 100; |
Noximilien | 3:10918b0f7a7d | 39 | int x_movement = 20; |
Noximilien | 3:10918b0f7a7d | 40 | int y_movement = 30; |
Noximilien | 0:69abdc43ae39 | 41 | |
Noximilien | 1:5aa2312d3e94 | 42 | int main(){ |
Noximilien | 1:5aa2312d3e94 | 43 | lcd.init(); |
Noximilien | 1:5aa2312d3e94 | 44 | |
Noximilien | 1:5aa2312d3e94 | 45 | intro(); |
Noximilien | 1:5aa2312d3e94 | 46 | |
Noximilien | 1:5aa2312d3e94 | 47 | |
Noximilien | 1:5aa2312d3e94 | 48 | while(1){ |
Noximilien | 1:5aa2312d3e94 | 49 | |
Noximilien | 1:5aa2312d3e94 | 50 | lcd.clear(); |
Noximilien | 2:ec89189860e0 | 51 | |
Noximilien | 2:ec89189860e0 | 52 | pointer_position(menu_number); |
Noximilien | 2:ec89189860e0 | 53 | |
Noximilien | 2:ec89189860e0 | 54 | if(y_dir.read() > 0.6){ |
Noximilien | 2:ec89189860e0 | 55 | menu_number -= 1; |
Noximilien | 2:ec89189860e0 | 56 | wait_ms(time_delay); |
Noximilien | 2:ec89189860e0 | 57 | } |
Noximilien | 2:ec89189860e0 | 58 | if (y_dir.read() < 0.4){ |
Noximilien | 2:ec89189860e0 | 59 | menu_number += 1; |
Noximilien | 2:ec89189860e0 | 60 | wait_ms(time_delay); |
Noximilien | 2:ec89189860e0 | 61 | } |
Noximilien | 2:ec89189860e0 | 62 | if (menu_number < 0) { |
Noximilien | 2:ec89189860e0 | 63 | menu_number += total_menu_number; |
Noximilien | 2:ec89189860e0 | 64 | } |
Noximilien | 2:ec89189860e0 | 65 | if (menu_number >= total_menu_number) { |
Noximilien | 2:ec89189860e0 | 66 | menu_number -= total_menu_number; |
Noximilien | 2:ec89189860e0 | 67 | } |
Noximilien | 2:ec89189860e0 | 68 | |
Noximilien | 1:5aa2312d3e94 | 69 | lcd.printString(" Start ",1,2); |
Noximilien | 1:5aa2312d3e94 | 70 | lcd.printString(" Tutorial",1,3); |
Noximilien | 1:5aa2312d3e94 | 71 | lcd.printString(" Settings",1,4); |
Noximilien | 3:10918b0f7a7d | 72 | sprintf(line_buffer, "%i", gamepad.L_PRESSED); |
Noximilien | 3:10918b0f7a7d | 73 | lcd.printString(line_buffer,0,0); |
Noximilien | 3:10918b0f7a7d | 74 | |
Noximilien | 3:10918b0f7a7d | 75 | if (menu_number == 1 && gamepad.A_PRESSED == 1){ |
Noximilien | 3:10918b0f7a7d | 76 | ship_movement(); |
Noximilien | 3:10918b0f7a7d | 77 | game_start(lcd, x_movement, y_movement); |
Noximilien | 3:10918b0f7a7d | 78 | } |
Noximilien | 2:ec89189860e0 | 79 | |
Noximilien | 1:5aa2312d3e94 | 80 | lcd.refresh(); |
Noximilien | 1:5aa2312d3e94 | 81 | wait_ms(1000/10); |
Noximilien | 1:5aa2312d3e94 | 82 | |
Noximilien | 1:5aa2312d3e94 | 83 | |
Noximilien | 1:5aa2312d3e94 | 84 | } |
Noximilien | 1:5aa2312d3e94 | 85 | |
Noximilien | 1:5aa2312d3e94 | 86 | |
Noximilien | 1:5aa2312d3e94 | 87 | |
Noximilien | 1:5aa2312d3e94 | 88 | } |
Noximilien | 1:5aa2312d3e94 | 89 | |
Noximilien | 1:5aa2312d3e94 | 90 | void intro(){ |
Noximilien | 1:5aa2312d3e94 | 91 | lcd.clear(); |
Noximilien | 1:5aa2312d3e94 | 92 | lcd.printString(" StarBarians",1,1); |
Noximilien | 1:5aa2312d3e94 | 93 | lcd.refresh(); |
Noximilien | 2:ec89189860e0 | 94 | wait(0.5); |
Noximilien | 1:5aa2312d3e94 | 95 | lcd.printString(" And the quest ",1,2); |
Noximilien | 1:5aa2312d3e94 | 96 | lcd.printString(" of the Princess Boobeta",1,3); |
Noximilien | 1:5aa2312d3e94 | 97 | lcd.printString(" Boobeta",1,4); |
Noximilien | 1:5aa2312d3e94 | 98 | lcd.refresh(); |
Noximilien | 2:ec89189860e0 | 99 | wait(0.5); |
Noximilien | 1:5aa2312d3e94 | 100 | } |
Noximilien | 1:5aa2312d3e94 | 101 | |
Noximilien | 1:5aa2312d3e94 | 102 | void pointer(int x, int y){ |
Noximilien | 1:5aa2312d3e94 | 103 | |
Noximilien | 1:5aa2312d3e94 | 104 | int cursor[84] = {0,0,0,0,1,0,0,0,0,0,1,1, |
Noximilien | 1:5aa2312d3e94 | 105 | 0,0,1,1,1,1,0,0,0,1,0,0, |
Noximilien | 1:5aa2312d3e94 | 106 | 0,1,0,0,1,1,1,0,1,0,0,0, |
Noximilien | 1:5aa2312d3e94 | 107 | 1,1,1,1,1,0,1,1,1,0,1,1, |
Noximilien | 1:5aa2312d3e94 | 108 | 0,1,0,0,1,1,1,0,1,0,0,0, |
Noximilien | 1:5aa2312d3e94 | 109 | 0,0,1,1,1,1,0,0,0,1,0,0, |
Noximilien | 1:5aa2312d3e94 | 110 | 0,0,0,0,1,0,0,0,0,0,1,1}; |
Noximilien | 1:5aa2312d3e94 | 111 | |
Noximilien | 1:5aa2312d3e94 | 112 | |
Noximilien | 1:5aa2312d3e94 | 113 | lcd.drawSprite(x,y,7,12,cursor); |
Noximilien | 1:5aa2312d3e94 | 114 | } |
Noximilien | 1:5aa2312d3e94 | 115 | |
Noximilien | 2:ec89189860e0 | 116 | void pointer_position(int menu_number){ //32 for 5th row- 25 for 4th row |
Noximilien | 2:ec89189860e0 | 117 | if (menu_number == 0){ |
Noximilien | 2:ec89189860e0 | 118 | pointer(70, 17); |
Noximilien | 2:ec89189860e0 | 119 | } |
Noximilien | 2:ec89189860e0 | 120 | if (menu_number == 1){ |
Noximilien | 2:ec89189860e0 | 121 | pointer(70, 25); |
Noximilien | 2:ec89189860e0 | 122 | } |
Noximilien | 2:ec89189860e0 | 123 | if (menu_number == 2){ |
Noximilien | 2:ec89189860e0 | 124 | pointer(70, 32); |
Noximilien | 2:ec89189860e0 | 125 | } |
Noximilien | 2:ec89189860e0 | 126 | } |
Noximilien | 2:ec89189860e0 | 127 | |
Noximilien | 3:10918b0f7a7d | 128 | void ship_movement(){ |
Noximilien | 3:10918b0f7a7d | 129 | if(y_dir.read() > 0.6){ |
Noximilien | 3:10918b0f7a7d | 130 | y_movement += 1; |
Noximilien | 3:10918b0f7a7d | 131 | //wait_ms(time_delay); |
Noximilien | 3:10918b0f7a7d | 132 | } |
Noximilien | 3:10918b0f7a7d | 133 | if (y_dir.read() < 0.4){ |
Noximilien | 3:10918b0f7a7d | 134 | y_movement -= 1; |
Noximilien | 3:10918b0f7a7d | 135 | //wait_ms(time_delay); |
Noximilien | 3:10918b0f7a7d | 136 | } |
Noximilien | 3:10918b0f7a7d | 137 | |
Noximilien | 3:10918b0f7a7d | 138 | if(x_dir.read() > 0.6){ |
Noximilien | 3:10918b0f7a7d | 139 | x_movement += 1; |
Noximilien | 3:10918b0f7a7d | 140 | //wait_ms(time_delay); |
Noximilien | 3:10918b0f7a7d | 141 | } |
Noximilien | 3:10918b0f7a7d | 142 | if (x_dir.read() < 0.4){ |
Noximilien | 3:10918b0f7a7d | 143 | x_movement -= 1; |
Noximilien | 3:10918b0f7a7d | 144 | //wait_ms(time_delay); |
Noximilien | 3:10918b0f7a7d | 145 | } |
Noximilien | 3:10918b0f7a7d | 146 | |
Noximilien | 3:10918b0f7a7d | 147 | } |
Noximilien | 3:10918b0f7a7d | 148 |