ELEC2645 (2018/19) / Mbed 2 deprecated el17arm

Dependencies:   mbed

Committer:
el17arm
Date:
Tue Apr 09 01:36:47 2019 +0000
Revision:
26:bce40bf4c9fc
Parent:
24:9c7aca60e374
created an enemy that will move side to side along a platform. I can control its speed also by making the _x increment in the if statement smaller or larger

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