ELEC2645 (2018/19) / Mbed 2 deprecated el17arm

Dependencies:   mbed

Committer:
el17arm
Date:
Mon Apr 08 22:31:07 2019 +0000
Revision:
25:7fb1b6fa9137
Parent:
24:9c7aca60e374
Committing this version as suddenly won't move left, reverting to earlier version to find where error has crept in

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17arm 14:dc3524d11921 1 #include "Gameengine.h"
el17arm 4:b92da6a09c8b 2
el17arm 14:dc3524d11921 3 Gameengine::Gameengine()
el17arm 4:b92da6a09c8b 4 {
el17arm 4:b92da6a09c8b 5 }
el17arm 4:b92da6a09c8b 6
el17arm 14:dc3524d11921 7 Gameengine::~Gameengine()
el17arm 4:b92da6a09c8b 8 {
el17arm 4:b92da6a09c8b 9 }
el17arm 14:dc3524d11921 10
el17arm 15:2bda80896a84 11 void Gameengine::game_init()
el17arm 15:2bda80896a84 12 {
el17arm 15:2bda80896a84 13 _level_select = 1;
el17arm 15:2bda80896a84 14 _miner.miner_init(3, 33);
el17arm 18:ff0a53dcb862 15 _lives = 3;
el17arm 15:2bda80896a84 16 }
el17arm 15:2bda80896a84 17
el17arm 15:2bda80896a84 18 void Gameengine::read_direction(Gamepad &pad)
el17arm 15:2bda80896a84 19 {
el17arm 15:2bda80896a84 20 _d = pad.get_direction();
el17arm 15:2bda80896a84 21 }
el17arm 15:2bda80896a84 22
el17arm 15:2bda80896a84 23 void Gameengine::update(N5110 &lcd, Gamepad &pad)
el17arm 19:4789cb4ca550 24 {
el17arm 19:4789cb4ca550 25 t.start();
el17arm 19:4789cb4ca550 26 read_direction(pad);
el17arm 25:7fb1b6fa9137 27 miner_pos();
el17arm 21:7a7a115d910d 28 _miner.miner_move(_d, lcd);
el17arm 15:2bda80896a84 29 _miner.miner_gravity(lcd);
el17arm 15:2bda80896a84 30 _miner.miner_jump(lcd, pad);
el17arm 15:2bda80896a84 31 _miner.miner_land(lcd);
el17arm 18:ff0a53dcb862 32 lose_life(lcd);
el17arm 19:4789cb4ca550 33 game_over();
el17arm 20:78bd235f8caa 34 next_level(lcd);
el17arm 15:2bda80896a84 35 }
el17arm 15:2bda80896a84 36
el17arm 23:1ee8686af747 37 void Gameengine::draw(Key _k, N5110 &lcd, Gamepad &pad)
el17arm 20:78bd235f8caa 38 {
el17arm 18:ff0a53dcb862 39 if (_level_select == 1) {
el17arm 19:4789cb4ca550 40
el17arm 15:2bda80896a84 41 _miner.miner_draw(lcd);
el17arm 18:ff0a53dcb862 42 _l1.level_platforms(lcd);
el17arm 18:ff0a53dcb862 43 _l1.soft_blocks(lcd);
el17arm 18:ff0a53dcb862 44 _l1.solid_blocks(lcd);
el17arm 24:9c7aca60e374 45 _l1.keys(lcd, pad);
el17arm 18:ff0a53dcb862 46 _l1.keys_collected();
el17arm 25:7fb1b6fa9137 47 _l1.traps(lcd);
el17arm 15:2bda80896a84 48 }
el17arm 20:78bd235f8caa 49 if(_level_select == 2) {
el17arm 20:78bd235f8caa 50
el17arm 20:78bd235f8caa 51 _miner.miner_draw(lcd);
el17arm 20:78bd235f8caa 52 lcd.drawLine(0,47,83,47,1);
el17arm 21:7a7a115d910d 53 //printf("level 2 time = %f \n", t.read());
el17arm 20:78bd235f8caa 54 }
el17arm 15:2bda80896a84 55 }
el17arm 18:ff0a53dcb862 56
el17arm 18:ff0a53dcb862 57 void Gameengine::lose_life(N5110 &lcd)
el17arm 18:ff0a53dcb862 58 {
el17arm 19:4789cb4ca550 59
el17arm 25:7fb1b6fa9137 60 if (_l1.traps(lcd) == true) {
el17arm 18:ff0a53dcb862 61 _lives--;
el17arm 18:ff0a53dcb862 62 _miner.miner_init(3, 33);
el17arm 18:ff0a53dcb862 63 wait(0.5);
el17arm 18:ff0a53dcb862 64 }
el17arm 19:4789cb4ca550 65 }
el17arm 19:4789cb4ca550 66
el17arm 19:4789cb4ca550 67 bool Gameengine::game_over()
el17arm 19:4789cb4ca550 68 {
el17arm 20:78bd235f8caa 69 if(_lives == 0 || t.read() > 60){
el17arm 19:4789cb4ca550 70 t.stop();
el17arm 19:4789cb4ca550 71 return true;
el17arm 19:4789cb4ca550 72 } else {
el17arm 19:4789cb4ca550 73 return false;
el17arm 19:4789cb4ca550 74 }
el17arm 20:78bd235f8caa 75 }
el17arm 20:78bd235f8caa 76
el17arm 20:78bd235f8caa 77 void Gameengine::next_level(N5110 &lcd)
el17arm 20:78bd235f8caa 78 {
el17arm 20:78bd235f8caa 79 if(_l1.level1_exit(lcd) == true){
el17arm 21:7a7a115d910d 80 t.stop();
el17arm 20:78bd235f8caa 81 _level_select = 2;
el17arm 20:78bd235f8caa 82 _miner.miner_init(3,0);
el17arm 21:7a7a115d910d 83 printf("Final score is %f \n ",_lives * (60 - t.read())+ (10 * _l1.keys_collected()));
el17arm 20:78bd235f8caa 84 }
el17arm 25:7fb1b6fa9137 85 }
el17arm 25:7fb1b6fa9137 86
el17arm 25:7fb1b6fa9137 87 void Gameengine::miner_pos()
el17arm 25:7fb1b6fa9137 88 {
el17arm 25:7fb1b6fa9137 89 Vector2D miner_pos = _miner.get_pos();
el17arm 25:7fb1b6fa9137 90
el17arm 25:7fb1b6fa9137 91 printf("miner x %i \n", miner_pos.x);
el17arm 25:7fb1b6fa9137 92 printf("miner y %i \n", miner_pos.y);
el17arm 18:ff0a53dcb862 93 }