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
Gameengine/Gameengine.cpp@26:bce40bf4c9fc, 2019-04-09 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |