Final Submission. I have read and agreed with Statement of Academic Integrity.

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }