ELEC2645 (2018/19) / Mbed 2 deprecated el17dg

Dependencies:   mbed

Fork of el17dg by Dmitrijs Griskovs

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?

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 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