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
- Committer:
- Noximilien
- Date:
- 2019-03-21
- Revision:
- 19:b78fa41d04a9
- Parent:
- 18:6becc9f9de5e
- Child:
- 20:557e84189a57
File content as of revision 19:b78fa41d04a9:
/*
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 "main.h"
#include "game.h"
#include "menu.h"
#include "models.h"
N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
Gamepad gamepad;
AnalogIn pot(PTB2);
AnalogIn x_dir(PTB11);
AnalogIn y_dir(PTB10);
AnalogIn rand_y(PTB3);
Menu menu;
Game game;
struct IntroMove {
int x;
int y;
};
IntroMove lineOne;
IntroMove lineTwo;
//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];
ScreenOption current_screen = ScreenOption_Menu;
void intro();
int main(){
lcd.init();
gamepad.init();
//gamepad.leds_on();
//gamepad.led(1,1.0);
intro();
srand(rand_y * 1000000); //Makeing the generated y position for the enemy to be trully random.
while(1){ //Waiting for the option "start game" to be selected and for the button B to be pressed
lcd.clear();
if (current_screen == ScreenOption_Game) {
bool game_is_paused = game.updateAndDraw();
if (game_is_paused) {
current_screen = ScreenOption_Menu;
}
}
else if (current_screen == ScreenOption_Menu) {
bool wantsToChangeScreen = menu.updateAndDraw();
if (wantsToChangeScreen) {
current_screen = menu.getCurrentScreenSelection();
}
}
bool game_over = game.checkGameOver();
if (game_over){
lcd.clear();
lcd.printString("GameOver",0,1);
lcd.refresh();
wait(1);
lcd.printString("Press Y",0,4);
lcd.printString("to restart",0,5);
lcd.refresh();
bool led_state = false;
while (!gamepad.check_event(gamepad.Y_PRESSED)){//////////////////////////////
gamepad.led(1,(float)led_state);
gamepad.led(2,(float)!led_state);
gamepad.led(3,(float)led_state);
gamepad.led(4,(float)!led_state);
gamepad.led(5,(float)led_state);
gamepad.led(6,(float)!led_state);
wait(0.5);
led_state = !led_state;
}
current_screen = ScreenOption_Menu;
}
lcd.refresh();
wait_ms(1000/fps);
}
}
void intro(){
lineOne.x = -63;
lineOne.y = 2; // This just will be an intro for the game.//////////////////
for (int i = 0; i < 67; i++){
lcd.clear();
lcd.drawSprite(lineOne.x + i, lineOne.y, 11, 63, (int*)introLineOne);
lcd.refresh();
wait(0.00001);
}
/*lcd.printString(" StarBarians",1,1);
lcd.refresh();
wait(0.5);
lcd.printString(" And the quest ",1,2);
lcd.printString(" of the Princess Spacecate",1,3);
lcd.printString(" Spacecate",1,4);*/
}
