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
Miner/Miner.cpp@29:d85886364643, 2019-04-10 (annotated)
- Committer:
- el17arm
- Date:
- Wed Apr 10 00:50:14 2019 +0000
- Revision:
- 29:d85886364643
- Parent:
- Minerengine/Miner.cpp@27:e73dd64ef334
- Child:
- 30:6d6b48fe3679
function created so I can generate multiple enemies on the screen moving at different distances and different speeds
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| el17arm | 27:e73dd64ef334 | 1 | #include "Miner.h" |
| el17arm | 27:e73dd64ef334 | 2 | |
| el17arm | 27:e73dd64ef334 | 3 | Miner::Miner() |
| el17arm | 27:e73dd64ef334 | 4 | { |
| el17arm | 29:d85886364643 | 5 | _enem.eflag[0] = false; |
| el17arm | 27:e73dd64ef334 | 6 | } |
| el17arm | 27:e73dd64ef334 | 7 | |
| el17arm | 27:e73dd64ef334 | 8 | Miner::~Miner() |
| el17arm | 27:e73dd64ef334 | 9 | { |
| el17arm | 27:e73dd64ef334 | 10 | } |
| el17arm | 27:e73dd64ef334 | 11 | |
| el17arm | 27:e73dd64ef334 | 12 | void Miner::miner_init(int x, int y) |
| el17arm | 27:e73dd64ef334 | 13 | { |
| el17arm | 27:e73dd64ef334 | 14 | _x = x; |
| el17arm | 27:e73dd64ef334 | 15 | _y = y; |
| el17arm | 27:e73dd64ef334 | 16 | } |
| el17arm | 27:e73dd64ef334 | 17 | |
| el17arm | 27:e73dd64ef334 | 18 | Vector2D Miner::get_pos() |
| el17arm | 27:e73dd64ef334 | 19 | { |
| el17arm | 27:e73dd64ef334 | 20 | Vector2D p = {_x,_y}; |
| el17arm | 29:d85886364643 | 21 | return p; |
| el17arm | 27:e73dd64ef334 | 22 | } |
| el17arm | 27:e73dd64ef334 | 23 | |
| el17arm | 27:e73dd64ef334 | 24 | void Miner::miner_draw(N5110 &lcd) |
| el17arm | 27:e73dd64ef334 | 25 | { |
| el17arm | 27:e73dd64ef334 | 26 | if (_direction == 1) { |
| el17arm | 27:e73dd64ef334 | 27 | lcd.drawSprite(_x,_y,8,3,(int *)miner_right); |
| el17arm | 27:e73dd64ef334 | 28 | } |
| el17arm | 27:e73dd64ef334 | 29 | if (_direction == 0) { |
| el17arm | 27:e73dd64ef334 | 30 | lcd.drawSprite(_x,_y,8,3,(int *)miner_left); |
| el17arm | 27:e73dd64ef334 | 31 | } |
| el17arm | 27:e73dd64ef334 | 32 | |
| el17arm | 27:e73dd64ef334 | 33 | } |
| el17arm | 27:e73dd64ef334 | 34 | void Miner::miner_land(N5110 &lcd) |
| el17arm | 27:e73dd64ef334 | 35 | { |
| el17arm | 27:e73dd64ef334 | 36 | _jump = (lcd.getPixel(_x+4,_y+8) || lcd.getPixel(_x-1,_y+8)); |
| el17arm | 27:e73dd64ef334 | 37 | |
| el17arm | 27:e73dd64ef334 | 38 | _gravity = !lcd.getPixel(_x,_y+8) && !lcd.getPixel(_x+2, _y+8); |
| el17arm | 27:e73dd64ef334 | 39 | } |
| el17arm | 27:e73dd64ef334 | 40 | |
| el17arm | 27:e73dd64ef334 | 41 | void Miner::miner_move(Direction d, N5110 &lcd) |
| el17arm | 27:e73dd64ef334 | 42 | { |
| el17arm | 27:e73dd64ef334 | 43 | if (d==E || d==NE) { |
| el17arm | 27:e73dd64ef334 | 44 | _x++; |
| el17arm | 27:e73dd64ef334 | 45 | _direction = 1; //chooses right facing sprite |
| el17arm | 27:e73dd64ef334 | 46 | } |
| el17arm | 27:e73dd64ef334 | 47 | if (d==W || d==NW) { |
| el17arm | 27:e73dd64ef334 | 48 | _x --; |
| el17arm | 27:e73dd64ef334 | 49 | _direction = 0; //chooses left facing sprite |
| el17arm | 27:e73dd64ef334 | 50 | } |
| el17arm | 29:d85886364643 | 51 | if(_x > 81) { |
| el17arm | 27:e73dd64ef334 | 52 | _x=WIDTH-3; |
| el17arm | 29:d85886364643 | 53 | } |
| el17arm | 29:d85886364643 | 54 | if(_x < 0) { |
| el17arm | 27:e73dd64ef334 | 55 | _x=0; |
| el17arm | 29:d85886364643 | 56 | } |
| el17arm | 27:e73dd64ef334 | 57 | } |
| el17arm | 27:e73dd64ef334 | 58 | |
| el17arm | 27:e73dd64ef334 | 59 | void Miner::miner_jump(N5110 &lcd, Gamepad &pad) |
| el17arm | 27:e73dd64ef334 | 60 | { |
| el17arm | 29:d85886364643 | 61 | while(pad.check_event(Gamepad::A_PRESSED) && _jump==1) { |
| el17arm | 29:d85886364643 | 62 | _y-=8; |
| el17arm | 29:d85886364643 | 63 | pad.tone(750,0.1); |
| el17arm | 27:e73dd64ef334 | 64 | } |
| el17arm | 27:e73dd64ef334 | 65 | } |
| el17arm | 27:e73dd64ef334 | 66 | |
| el17arm | 27:e73dd64ef334 | 67 | void Miner::miner_gravity(N5110 &lcd) |
| el17arm | 27:e73dd64ef334 | 68 | { |
| el17arm | 27:e73dd64ef334 | 69 | if(_gravity == 1) { |
| el17arm | 27:e73dd64ef334 | 70 | _y = _y + 1; |
| el17arm | 27:e73dd64ef334 | 71 | } |
| el17arm | 29:d85886364643 | 72 | } |
| el17arm | 29:d85886364643 | 73 | |
| el17arm | 29:d85886364643 | 74 | |
| el17arm | 29:d85886364643 | 75 | void Miner::enemy_init(int i, int x, int y, int d) |
| el17arm | 29:d85886364643 | 76 | { |
| el17arm | 29:d85886364643 | 77 | _enem.ex[i] = x; |
| el17arm | 29:d85886364643 | 78 | _enem.ey[i] = y; |
| el17arm | 29:d85886364643 | 79 | _enem.distance[i] = d; |
| el17arm | 29:d85886364643 | 80 | } |
| el17arm | 29:d85886364643 | 81 | |
| el17arm | 29:d85886364643 | 82 | void Miner::enemy_move(int i, double v, N5110 &lcd) |
| el17arm | 29:d85886364643 | 83 | { |
| el17arm | 29:d85886364643 | 84 | lcd.drawSprite(_enem.ex[i],_enem.ey[i],5,3, (int *) enemy); |
| el17arm | 29:d85886364643 | 85 | |
| el17arm | 29:d85886364643 | 86 | if (_enem.eflag[i] == false) { |
| el17arm | 29:d85886364643 | 87 | _enem.ex[i] = _enem.ex[i] + v; |
| el17arm | 29:d85886364643 | 88 | _enem.counter[i]++; |
| el17arm | 29:d85886364643 | 89 | } |
| el17arm | 29:d85886364643 | 90 | if(_enem.counter[i] == _enem.distance[i]) { |
| el17arm | 29:d85886364643 | 91 | _enem.eflag[i] = true; |
| el17arm | 29:d85886364643 | 92 | } |
| el17arm | 29:d85886364643 | 93 | if (_enem.eflag[i] == true) { |
| el17arm | 29:d85886364643 | 94 | _enem.ex[i] = _enem.ex[i] - v; |
| el17arm | 29:d85886364643 | 95 | _enem.counter[i]--; |
| el17arm | 29:d85886364643 | 96 | } |
| el17arm | 29:d85886364643 | 97 | if (_enem.counter[i] == 0) { |
| el17arm | 29:d85886364643 | 98 | _enem.eflag[i] = false; |
| el17arm | 29:d85886364643 | 99 | } |
| el17arm | 29:d85886364643 | 100 | } |
| el17arm | 29:d85886364643 | 101 | |
| el17arm | 29:d85886364643 | 102 | bool Miner::enemy_collision(int i) |
| el17arm | 29:d85886364643 | 103 | { |
| el17arm | 29:d85886364643 | 104 | Vector2D p = get_pos(); |
| el17arm | 29:d85886364643 | 105 | |
| el17arm | 29:d85886364643 | 106 | if (p.x < _enem.ex[i] + 2 && p.x + 2 > _enem.ex[i] && p.y < _enem.ey[i] + 4 |
| el17arm | 29:d85886364643 | 107 | && p.y + 9 > _enem.ey[i]) { |
| el17arm | 29:d85886364643 | 108 | return true; |
| el17arm | 29:d85886364643 | 109 | } else { |
| el17arm | 29:d85886364643 | 110 | return false; |
| el17arm | 29:d85886364643 | 111 | } |
| el17arm | 27:e73dd64ef334 | 112 | } |