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
Diff: main/main.cpp
- Revision:
- 3:10918b0f7a7d
- Parent:
- 2:ec89189860e0
- Child:
- 4:02c63aaa2df9
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main/main.cpp Thu Feb 28 16:13:06 2019 +0000 @@ -0,0 +1,148 @@ +/* +ELEC2645 Embedded Systems Project +School of Electronic & Electrical Engineering +University of Leeds +Name: Dmitrijs Griskovs +Username: el17dg +Student ID Number: 201160286 +Date: start - 25/02/2019 +*/ + + +#include "mbed.h" +#include "N5110.h" +#include "Gamepad.h" +#include "game.h" + + + +N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); +Gamepad gamepad; +AnalogIn pot(PTB2); + +AnalogIn x_dir(PTB11); +AnalogIn y_dir(PTB10); + +static const unsigned int MAX_LINE_LENGTH = 14; + + +void intro(); +void pointer(int x, int y); +void pointer_position(int menu_number); +void ship_movement(); + +char line_buffer[MAX_LINE_LENGTH]; + +int menu_number = 0; +int total_menu_number = 3; +float time_delay = 100; +int x_movement = 20; +int y_movement = 30; + +int main(){ + lcd.init(); + + intro(); + + + while(1){ + + lcd.clear(); + + pointer_position(menu_number); + + if(y_dir.read() > 0.6){ + menu_number -= 1; + wait_ms(time_delay); + } + if (y_dir.read() < 0.4){ + menu_number += 1; + wait_ms(time_delay); + } + if (menu_number < 0) { + menu_number += total_menu_number; + } + if (menu_number >= total_menu_number) { + menu_number -= total_menu_number; + } + + lcd.printString(" Start ",1,2); + lcd.printString(" Tutorial",1,3); + lcd.printString(" Settings",1,4); + sprintf(line_buffer, "%i", gamepad.L_PRESSED); + lcd.printString(line_buffer,0,0); + + if (menu_number == 1 && gamepad.A_PRESSED == 1){ + ship_movement(); + game_start(lcd, x_movement, y_movement); + } + + lcd.refresh(); + wait_ms(1000/10); + + + } + + + +} + +void intro(){ + lcd.clear(); + lcd.printString(" StarBarians",1,1); + lcd.refresh(); + wait(0.5); + lcd.printString(" And the quest ",1,2); + lcd.printString(" of the Princess Boobeta",1,3); + lcd.printString(" Boobeta",1,4); + lcd.refresh(); + wait(0.5); +} + +void pointer(int x, int y){ + + int cursor[84] = {0,0,0,0,1,0,0,0,0,0,1,1, + 0,0,1,1,1,1,0,0,0,1,0,0, + 0,1,0,0,1,1,1,0,1,0,0,0, + 1,1,1,1,1,0,1,1,1,0,1,1, + 0,1,0,0,1,1,1,0,1,0,0,0, + 0,0,1,1,1,1,0,0,0,1,0,0, + 0,0,0,0,1,0,0,0,0,0,1,1}; + + + lcd.drawSprite(x,y,7,12,cursor); +} + +void pointer_position(int menu_number){ //32 for 5th row- 25 for 4th row + if (menu_number == 0){ + pointer(70, 17); + } + if (menu_number == 1){ + pointer(70, 25); + } + if (menu_number == 2){ + pointer(70, 32); + } +} + +void ship_movement(){ + if(y_dir.read() > 0.6){ + y_movement += 1; + //wait_ms(time_delay); + } + if (y_dir.read() < 0.4){ + y_movement -= 1; + //wait_ms(time_delay); + } + + if(x_dir.read() > 0.6){ + x_movement += 1; + //wait_ms(time_delay); + } + if (x_dir.read() < 0.4){ + x_movement -= 1; + //wait_ms(time_delay); + } + +} +