Final Submission. I have read and agreed with Statement of Academic Integrity.
Dependencies: mbed
main.cpp@1:86f96ceaf593, 2020-05-29 (annotated)
- Committer:
- louisberard
- Date:
- Fri May 29 12:07:22 2020 +0000
- Revision:
- 1:86f96ceaf593
- Parent:
- 0:7423345f87c5
- Child:
- 2:586409836de7
movement working
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
eencae | 0:7423345f87c5 | 1 | ///////// pre-processor directives //////// |
eencae | 0:7423345f87c5 | 2 | #include "mbed.h" |
eencae | 0:7423345f87c5 | 3 | #include "Gamepad.h" |
eencae | 0:7423345f87c5 | 4 | #include "N5110.h" |
eencae | 0:7423345f87c5 | 5 | |
louisberard | 1:86f96ceaf593 | 6 | //Objects |
louisberard | 1:86f96ceaf593 | 7 | Gamepad pad; |
louisberard | 1:86f96ceaf593 | 8 | N5110 lcd; |
eencae | 0:7423345f87c5 | 9 | |
louisberard | 1:86f96ceaf593 | 10 | char player_char = 'x'; |
louisberard | 1:86f96ceaf593 | 11 | int player_xpos = 1; |
louisberard | 1:86f96ceaf593 | 12 | int player_ypos = 45; |
louisberard | 1:86f96ceaf593 | 13 | char array[84][48]; |
louisberard | 1:86f96ceaf593 | 14 | int move = 0; |
louisberard | 1:86f96ceaf593 | 15 | |
louisberard | 1:86f96ceaf593 | 16 | //Prototypes |
louisberard | 1:86f96ceaf593 | 17 | void pad_init(); |
louisberard | 1:86f96ceaf593 | 18 | void update_display(); |
louisberard | 1:86f96ceaf593 | 19 | void draw_array(); |
louisberard | 1:86f96ceaf593 | 20 | void player_object(); |
louisberard | 1:86f96ceaf593 | 21 | void Copy_array(); |
louisberard | 1:86f96ceaf593 | 22 | void player_movements(); |
louisberard | 1:86f96ceaf593 | 23 | void update_array(); |
louisberard | 1:86f96ceaf593 | 24 | void apply_move(); |
louisberard | 1:86f96ceaf593 | 25 | void array_init(); |
louisberard | 1:86f96ceaf593 | 26 | void add_surface_array(); |
louisberard | 1:86f96ceaf593 | 27 | void add_player_array(); |
louisberard | 1:86f96ceaf593 | 28 | void get_move(int); |
louisberard | 1:86f96ceaf593 | 29 | void print_screen(); |
louisberard | 1:86f96ceaf593 | 30 | //Main function |
eencae | 0:7423345f87c5 | 31 | int main() |
eencae | 0:7423345f87c5 | 32 | { |
louisberard | 1:86f96ceaf593 | 33 | pad_init(); |
louisberard | 1:86f96ceaf593 | 34 | array_init(); |
louisberard | 1:86f96ceaf593 | 35 | add_surface_array(); |
louisberard | 1:86f96ceaf593 | 36 | add_player_array(); |
louisberard | 1:86f96ceaf593 | 37 | print_screen(); |
louisberard | 1:86f96ceaf593 | 38 | update_display(); |
louisberard | 1:86f96ceaf593 | 39 | //Loop runs forever |
louisberard | 1:86f96ceaf593 | 40 | while(1){ |
louisberard | 1:86f96ceaf593 | 41 | get_move(move); |
louisberard | 1:86f96ceaf593 | 42 | apply_move(); |
louisberard | 1:86f96ceaf593 | 43 | add_player_array(); |
louisberard | 1:86f96ceaf593 | 44 | print_screen(); |
louisberard | 1:86f96ceaf593 | 45 | |
louisberard | 1:86f96ceaf593 | 46 | update_display(); |
eencae | 0:7423345f87c5 | 47 | } |
eencae | 0:7423345f87c5 | 48 | } |
eencae | 0:7423345f87c5 | 49 | |
louisberard | 1:86f96ceaf593 | 50 | void array_init(){ |
louisberard | 1:86f96ceaf593 | 51 | for(int j = 0; j < 47; j++){ |
louisberard | 1:86f96ceaf593 | 52 | for(int i = 0; i < 83; i++){ |
louisberard | 1:86f96ceaf593 | 53 | array[i][j] = '0'; |
louisberard | 1:86f96ceaf593 | 54 | }}} |
louisberard | 1:86f96ceaf593 | 55 | |
louisberard | 1:86f96ceaf593 | 56 | void apply_move(){ |
louisberard | 1:86f96ceaf593 | 57 | int old_player_xpos = player_xpos; |
louisberard | 1:86f96ceaf593 | 58 | player_xpos += move; |
louisberard | 1:86f96ceaf593 | 59 | array[old_player_xpos][player_ypos] = '0'; |
louisberard | 1:86f96ceaf593 | 60 | } |
louisberard | 1:86f96ceaf593 | 61 | |
louisberard | 1:86f96ceaf593 | 62 | |
louisberard | 1:86f96ceaf593 | 63 | void print_screen(){ |
louisberard | 1:86f96ceaf593 | 64 | for(int j = 0; j < 47; j++){ |
louisberard | 1:86f96ceaf593 | 65 | for(int i = 0; i < 83; i++){ |
louisberard | 1:86f96ceaf593 | 66 | |
louisberard | 1:86f96ceaf593 | 67 | if (array[i][j] == '0'){ |
louisberard | 1:86f96ceaf593 | 68 | lcd.setPixel(i,j,false); |
louisberard | 1:86f96ceaf593 | 69 | } |
louisberard | 1:86f96ceaf593 | 70 | else if(array[i][j] == '1'){ |
louisberard | 1:86f96ceaf593 | 71 | lcd.setPixel(i,j, true); |
louisberard | 1:86f96ceaf593 | 72 | } |
louisberard | 1:86f96ceaf593 | 73 | else if(array[i][j] == 'x'){ |
louisberard | 1:86f96ceaf593 | 74 | lcd.setPixel(i,j, true); |
louisberard | 1:86f96ceaf593 | 75 | |
louisberard | 1:86f96ceaf593 | 76 | } |
louisberard | 1:86f96ceaf593 | 77 | } |
louisberard | 1:86f96ceaf593 | 78 | }} |
louisberard | 1:86f96ceaf593 | 79 | |
louisberard | 1:86f96ceaf593 | 80 | |
louisberard | 1:86f96ceaf593 | 81 | |
louisberard | 1:86f96ceaf593 | 82 | |
louisberard | 1:86f96ceaf593 | 83 | //Prototype functions |
louisberard | 1:86f96ceaf593 | 84 | void pad_init(){ |
eencae | 0:7423345f87c5 | 85 | lcd.init(); |
louisberard | 1:86f96ceaf593 | 86 | lcd.setContrast(0.5); |
louisberard | 1:86f96ceaf593 | 87 | lcd.clear(); |
eencae | 0:7423345f87c5 | 88 | pad.init(); |
eencae | 0:7423345f87c5 | 89 | } |
eencae | 0:7423345f87c5 | 90 | |
louisberard | 1:86f96ceaf593 | 91 | void add_surface_array() |
eencae | 0:7423345f87c5 | 92 | { |
louisberard | 1:86f96ceaf593 | 93 | for(int i = 0; i < 84; i++){ |
louisberard | 1:86f96ceaf593 | 94 | array[i][46] = '1'; |
louisberard | 1:86f96ceaf593 | 95 | } |
louisberard | 1:86f96ceaf593 | 96 | } |
louisberard | 1:86f96ceaf593 | 97 | |
louisberard | 1:86f96ceaf593 | 98 | void add_player_array() |
louisberard | 1:86f96ceaf593 | 99 | { |
louisberard | 1:86f96ceaf593 | 100 | array[player_xpos][player_ypos] = player_char; |
eencae | 0:7423345f87c5 | 101 | } |
eencae | 0:7423345f87c5 | 102 | |
louisberard | 1:86f96ceaf593 | 103 | |
louisberard | 1:86f96ceaf593 | 104 | |
louisberard | 1:86f96ceaf593 | 105 | void get_move(int) |
louisberard | 1:86f96ceaf593 | 106 | { while(pad.A_pressed() == 0 && pad.B_pressed() == 0){ |
louisberard | 1:86f96ceaf593 | 107 | if(pad.A_pressed() == 1){ |
louisberard | 1:86f96ceaf593 | 108 | move = 1; |
louisberard | 1:86f96ceaf593 | 109 | } |
louisberard | 1:86f96ceaf593 | 110 | else if(pad.B_pressed() == 1){ |
louisberard | 1:86f96ceaf593 | 111 | move = -1; |
louisberard | 1:86f96ceaf593 | 112 | } |
louisberard | 1:86f96ceaf593 | 113 | } |
louisberard | 1:86f96ceaf593 | 114 | } |
louisberard | 1:86f96ceaf593 | 115 | |
eencae | 0:7423345f87c5 | 116 | |
louisberard | 1:86f96ceaf593 | 117 | void update_display() |
louisberard | 1:86f96ceaf593 | 118 | { |
louisberard | 1:86f96ceaf593 | 119 | lcd.refresh(); //Refreshes the lcd so the pixels appear |
louisberard | 1:86f96ceaf593 | 120 | wait_ms(200); //Frame rate of game |
eencae | 0:7423345f87c5 | 121 | } |