ELEC2645 (2018/19) / Mbed 2 deprecated el17lw

Dependencies:   mbed

Committer:
lewisgw
Date:
Mon Apr 01 18:06:55 2019 +0000
Revision:
12:ebaefda53dd0
Child:
14:9861fe85c803
Added the structure of a finite state machine ready to implement a working menu

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lewisgw 12:ebaefda53dd0 1 #include "EngineController.h"
lewisgw 12:ebaefda53dd0 2
lewisgw 12:ebaefda53dd0 3 int intro_text[12][42] = {
lewisgw 12:ebaefda53dd0 4 { 1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
lewisgw 12:ebaefda53dd0 5 { 1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
lewisgw 12:ebaefda53dd0 6 { 1,1,0,0,0,0,0,1,1,0,0,1,1,0,1,1,0,0,0,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1 },
lewisgw 12:ebaefda53dd0 7 { 1,1,0,0,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1 },
lewisgw 12:ebaefda53dd0 8 { 1,1,0,0,0,0,0,1,1,0,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,1 },
lewisgw 12:ebaefda53dd0 9 { 1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
lewisgw 12:ebaefda53dd0 10 { 1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0 },
lewisgw 12:ebaefda53dd0 11 { 0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,0,0,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,0,0 },
lewisgw 12:ebaefda53dd0 12 { 0,0,0,0,0,1,1,1,1,0,1,1,1,0,1,1,0,0,0,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,1,0,0 },
lewisgw 12:ebaefda53dd0 13 { 0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,1,0,0 },
lewisgw 12:ebaefda53dd0 14 { 1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0 },
lewisgw 12:ebaefda53dd0 15 { 1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1 }
lewisgw 12:ebaefda53dd0 16 };
lewisgw 12:ebaefda53dd0 17
lewisgw 12:ebaefda53dd0 18 EngineController::EngineController() {}
lewisgw 12:ebaefda53dd0 19
lewisgw 12:ebaefda53dd0 20 EngineController::~EngineController() {}
lewisgw 12:ebaefda53dd0 21
lewisgw 12:ebaefda53dd0 22 void EngineController::init() {
lewisgw 12:ebaefda53dd0 23 _game_engine.init();
lewisgw 12:ebaefda53dd0 24 _game_counter = 0;
lewisgw 12:ebaefda53dd0 25 _start_platform = true;
lewisgw 12:ebaefda53dd0 26 }
lewisgw 12:ebaefda53dd0 27
lewisgw 12:ebaefda53dd0 28 void EngineController::run_game_engine(N5110 &lcd, Gamepad &gamepad) {
lewisgw 12:ebaefda53dd0 29 if(_start_platform) print_intro_text(lcd);
lewisgw 12:ebaefda53dd0 30 if(_game_counter == 100) _game_counter = 0;
lewisgw 12:ebaefda53dd0 31 _game_engine.check_reset();
lewisgw 12:ebaefda53dd0 32 _game_engine.read_input(gamepad);
lewisgw 12:ebaefda53dd0 33 _start_platform = _game_engine.get_start_platform();
lewisgw 12:ebaefda53dd0 34 if (_game_counter % 10 == 0) _game_engine.generate_map();
lewisgw 12:ebaefda53dd0 35 _game_engine.set_level_condition();
lewisgw 12:ebaefda53dd0 36 _game_engine.process_y();
lewisgw 12:ebaefda53dd0 37 _game_engine.process_x(_game_counter);
lewisgw 12:ebaefda53dd0 38 _game_engine.process_sprite();
lewisgw 12:ebaefda53dd0 39 _game_engine.update_lcd(lcd);
lewisgw 12:ebaefda53dd0 40 _game_counter++;
lewisgw 12:ebaefda53dd0 41 }
lewisgw 12:ebaefda53dd0 42
lewisgw 12:ebaefda53dd0 43 void EngineController::print_intro_text(N5110 &lcd) {
lewisgw 12:ebaefda53dd0 44 lcd.drawLine(0,17,80,17,FILL_WHITE);
lewisgw 12:ebaefda53dd0 45 lcd.drawSprite(40,4,12,42,(int *)intro_text);
lewisgw 12:ebaefda53dd0 46 }