Josh Davy / Mbed 2 deprecated Flip

Dependencies:   mbed el17jd

Committer:
joshdavy
Date:
Wed Apr 24 10:18:45 2019 +0000
Revision:
9:96969b1c6bde
Parent:
8:21b6d4dbce44
Child:
10:58cf89dd878c
Added win screen aswell as multiple levels.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
joshdavy 1:37802772843e 1 #include "Game.h"
joshdavy 8:21b6d4dbce44 2
joshdavy 9:96969b1c6bde 3 // Objects
joshdavy 1:37802772843e 4 Game::Game()
joshdavy 1:37802772843e 5 {
joshdavy 1:37802772843e 6
joshdavy 7:68e06dda79f7 7
joshdavy 1:37802772843e 8
joshdavy 1:37802772843e 9
joshdavy 1:37802772843e 10 }
joshdavy 9:96969b1c6bde 11
joshdavy 9:96969b1c6bde 12 void Game::load_level(int level_number)
joshdavy 9:96969b1c6bde 13 {
joshdavy 9:96969b1c6bde 14 LevelDefinition level_def;
joshdavy 9:96969b1c6bde 15 switch(level_number) {
joshdavy 9:96969b1c6bde 16 case 1 :
joshdavy 9:96969b1c6bde 17 level_def = level_1;
joshdavy 9:96969b1c6bde 18 break;
joshdavy 9:96969b1c6bde 19 case 2:
joshdavy 9:96969b1c6bde 20 level_def = level_2;
joshdavy 9:96969b1c6bde 21 break;
joshdavy 9:96969b1c6bde 22 case 3:
joshdavy 9:96969b1c6bde 23 level_def = level_3;
joshdavy 9:96969b1c6bde 24 break;
joshdavy 9:96969b1c6bde 25 case 4:
joshdavy 9:96969b1c6bde 26 level_def = level_4;
joshdavy 9:96969b1c6bde 27 break;
joshdavy 9:96969b1c6bde 28 case 5:
joshdavy 9:96969b1c6bde 29 level_def = level_5;
joshdavy 9:96969b1c6bde 30 break;
joshdavy 9:96969b1c6bde 31 case 6:
joshdavy 9:96969b1c6bde 32 level_def = level_6;
joshdavy 9:96969b1c6bde 33 break;
joshdavy 9:96969b1c6bde 34 case 7:
joshdavy 9:96969b1c6bde 35 level_def = level_7;
joshdavy 9:96969b1c6bde 36 break;
joshdavy 9:96969b1c6bde 37 case 8:
joshdavy 9:96969b1c6bde 38 _game_won = true;
joshdavy 9:96969b1c6bde 39 return;
joshdavy 9:96969b1c6bde 40
joshdavy 9:96969b1c6bde 41
joshdavy 9:96969b1c6bde 42 }
joshdavy 9:96969b1c6bde 43
joshdavy 9:96969b1c6bde 44 _player.init(6,6,level_def.initial_pos);
joshdavy 9:96969b1c6bde 45 _level.init(level_def.blocks,
joshdavy 9:96969b1c6bde 46 level_def.number_of_blocks,
joshdavy 9:96969b1c6bde 47 level_def.goal);
joshdavy 9:96969b1c6bde 48
joshdavy 9:96969b1c6bde 49
joshdavy 9:96969b1c6bde 50 for (int i = 0; i < level_def.number_of_moving_blocks; i++) {
joshdavy 9:96969b1c6bde 51 MovingBlockDefinition x = level_def.moving_blocks[i];
joshdavy 9:96969b1c6bde 52 _level.declare_moving_block(x.index,x.extending,x.distance);
joshdavy 9:96969b1c6bde 53 }
joshdavy 9:96969b1c6bde 54
joshdavy 9:96969b1c6bde 55 }
joshdavy 9:96969b1c6bde 56
joshdavy 7:68e06dda79f7 57 void Game::init()
joshdavy 7:68e06dda79f7 58 {
joshdavy 9:96969b1c6bde 59
joshdavy 9:96969b1c6bde 60 load_level(1);
joshdavy 9:96969b1c6bde 61 _current_level = 1;
joshdavy 9:96969b1c6bde 62 _game_won = false;
joshdavy 7:68e06dda79f7 63 }
joshdavy 1:37802772843e 64
joshdavy 1:37802772843e 65 Game::~Game()
joshdavy 1:37802772843e 66 {
joshdavy 1:37802772843e 67
joshdavy 1:37802772843e 68 }
joshdavy 1:37802772843e 69
joshdavy 1:37802772843e 70
joshdavy 1:37802772843e 71
joshdavy 1:37802772843e 72 void Game::update(Gamepad &pad)
joshdavy 1:37802772843e 73 {
joshdavy 9:96969b1c6bde 74 _player.update(pad, _level.get_blocks(),_level.get_number_of_blocks());
joshdavy 9:96969b1c6bde 75 _level.update_moving_blocks();
joshdavy 9:96969b1c6bde 76 if (_player.check_goal_reached(_level.get_goal())) {
joshdavy 9:96969b1c6bde 77 _current_level += 1;
joshdavy 9:96969b1c6bde 78 load_level(_current_level);
joshdavy 9:96969b1c6bde 79 }
joshdavy 9:96969b1c6bde 80
joshdavy 9:96969b1c6bde 81
joshdavy 1:37802772843e 82 }
joshdavy 1:37802772843e 83
joshdavy 9:96969b1c6bde 84
joshdavy 2:b62e8be35a5d 85 void Game::draw(N5110 &lcd)
joshdavy 1:37802772843e 86 {
joshdavy 9:96969b1c6bde 87
joshdavy 2:b62e8be35a5d 88 lcd.clear();
joshdavy 8:21b6d4dbce44 89 _level.render(lcd);
joshdavy 1:37802772843e 90 _player.render(lcd);
joshdavy 2:b62e8be35a5d 91 lcd.refresh();
joshdavy 2:b62e8be35a5d 92
joshdavy 1:37802772843e 93 }
joshdavy 1:37802772843e 94
joshdavy 9:96969b1c6bde 95
joshdavy 9:96969b1c6bde 96 bool Game::game_won()
joshdavy 9:96969b1c6bde 97 {
joshdavy 9:96969b1c6bde 98 return _game_won;
joshdavy 9:96969b1c6bde 99 }