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@28:a38070a1cdcf, 2019-04-09 (annotated)
- Committer:
- el17arm
- Date:
- Tue Apr 09 21:03:49 2019 +0000
- Revision:
- 28:a38070a1cdcf
- Parent:
- Minerengine/Miner.cpp@27:e73dd64ef334
reorganised differently (unfinished) returning to previous version but may return to this one still
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 | 27:e73dd64ef334 | 5 | } |
| el17arm | 27:e73dd64ef334 | 6 | |
| el17arm | 27:e73dd64ef334 | 7 | Miner::~Miner() |
| el17arm | 27:e73dd64ef334 | 8 | { |
| el17arm | 27:e73dd64ef334 | 9 | } |
| el17arm | 27:e73dd64ef334 | 10 | |
| el17arm | 27:e73dd64ef334 | 11 | Vector2D Miner::get_pos() |
| el17arm | 27:e73dd64ef334 | 12 | { |
| el17arm | 27:e73dd64ef334 | 13 | Vector2D p = {_x,_y}; |
| el17arm | 28:a38070a1cdcf | 14 | printf("miner x = %f \n", p.x); |
| el17arm | 28:a38070a1cdcf | 15 | return p; |
| el17arm | 27:e73dd64ef334 | 16 | } |
| el17arm | 27:e73dd64ef334 | 17 | |
| el17arm | 27:e73dd64ef334 | 18 | void Miner::miner_draw(N5110 &lcd) |
| el17arm | 27:e73dd64ef334 | 19 | { |
| el17arm | 27:e73dd64ef334 | 20 | if (_direction == 1) { |
| el17arm | 27:e73dd64ef334 | 21 | lcd.drawSprite(_x,_y,8,3,(int *)miner_right); |
| el17arm | 27:e73dd64ef334 | 22 | } |
| el17arm | 27:e73dd64ef334 | 23 | if (_direction == 0) { |
| el17arm | 27:e73dd64ef334 | 24 | lcd.drawSprite(_x,_y,8,3,(int *)miner_left); |
| el17arm | 27:e73dd64ef334 | 25 | } |
| el17arm | 27:e73dd64ef334 | 26 | |
| el17arm | 27:e73dd64ef334 | 27 | } |
| el17arm | 27:e73dd64ef334 | 28 | void Miner::miner_land(N5110 &lcd) |
| el17arm | 27:e73dd64ef334 | 29 | { |
| el17arm | 27:e73dd64ef334 | 30 | _jump = (lcd.getPixel(_x+4,_y+8) || lcd.getPixel(_x-1,_y+8)); |
| el17arm | 27:e73dd64ef334 | 31 | |
| el17arm | 27:e73dd64ef334 | 32 | _gravity = !lcd.getPixel(_x,_y+8) && !lcd.getPixel(_x+2, _y+8); |
| el17arm | 27:e73dd64ef334 | 33 | } |
| el17arm | 27:e73dd64ef334 | 34 | |
| el17arm | 27:e73dd64ef334 | 35 | void Miner::miner_move(Direction d, N5110 &lcd) |
| el17arm | 27:e73dd64ef334 | 36 | { |
| el17arm | 27:e73dd64ef334 | 37 | if (d==E || d==NE) { |
| el17arm | 27:e73dd64ef334 | 38 | _x++; |
| el17arm | 27:e73dd64ef334 | 39 | _direction = 1; //chooses right facing sprite |
| el17arm | 27:e73dd64ef334 | 40 | } |
| el17arm | 27:e73dd64ef334 | 41 | if (d==W || d==NW) { |
| el17arm | 27:e73dd64ef334 | 42 | _x --; |
| el17arm | 27:e73dd64ef334 | 43 | _direction = 0; //chooses left facing sprite |
| el17arm | 27:e73dd64ef334 | 44 | } |
| el17arm | 27:e73dd64ef334 | 45 | if(_x > 81){ |
| el17arm | 27:e73dd64ef334 | 46 | _x=WIDTH-3; |
| el17arm | 27:e73dd64ef334 | 47 | } |
| el17arm | 27:e73dd64ef334 | 48 | if(_x < 0){ |
| el17arm | 27:e73dd64ef334 | 49 | _x=0; |
| el17arm | 27:e73dd64ef334 | 50 | } |
| el17arm | 27:e73dd64ef334 | 51 | } |
| el17arm | 27:e73dd64ef334 | 52 | |
| el17arm | 27:e73dd64ef334 | 53 | void Miner::miner_jump(N5110 &lcd, Gamepad &pad) |
| el17arm | 27:e73dd64ef334 | 54 | { |
| el17arm | 27:e73dd64ef334 | 55 | if(pad.check_event(Gamepad::A_PRESSED) && _jump==1) { |
| el17arm | 27:e73dd64ef334 | 56 | _y-=8; |
| el17arm | 27:e73dd64ef334 | 57 | pad.tone(750,0.1); |
| el17arm | 27:e73dd64ef334 | 58 | } |
| el17arm | 27:e73dd64ef334 | 59 | } |
| el17arm | 27:e73dd64ef334 | 60 | |
| el17arm | 27:e73dd64ef334 | 61 | void Miner::miner_gravity(N5110 &lcd) |
| el17arm | 27:e73dd64ef334 | 62 | { |
| el17arm | 27:e73dd64ef334 | 63 | if(_gravity == 1) { |
| el17arm | 27:e73dd64ef334 | 64 | _y = _y + 1; |
| el17arm | 27:e73dd64ef334 | 65 | } |
| el17arm | 28:a38070a1cdcf | 66 | } |
| el17arm | 28:a38070a1cdcf | 67 | |
| el17arm | 28:a38070a1cdcf | 68 | void Miner::enemy_init(int x, int y, volatile int d) |
| el17arm | 28:a38070a1cdcf | 69 | { |
| el17arm | 28:a38070a1cdcf | 70 | _xe = x; |
| el17arm | 28:a38070a1cdcf | 71 | _ye = y; |
| el17arm | 28:a38070a1cdcf | 72 | _distance = d; |
| el17arm | 28:a38070a1cdcf | 73 | } |
| el17arm | 28:a38070a1cdcf | 74 | |
| el17arm | 28:a38070a1cdcf | 75 | void Miner::enemy_move(N5110 &lcd) |
| el17arm | 28:a38070a1cdcf | 76 | { |
| el17arm | 28:a38070a1cdcf | 77 | lcd.drawSprite(_x,_y,5,3, (int *) enemy); |
| el17arm | 28:a38070a1cdcf | 78 | if (_turn_flag == 0) { |
| el17arm | 28:a38070a1cdcf | 79 | _x = _x + 0.5; |
| el17arm | 28:a38070a1cdcf | 80 | _counter++; |
| el17arm | 28:a38070a1cdcf | 81 | } |
| el17arm | 28:a38070a1cdcf | 82 | if(_counter == _distance) { |
| el17arm | 28:a38070a1cdcf | 83 | _turn_flag = 1; |
| el17arm | 28:a38070a1cdcf | 84 | } |
| el17arm | 28:a38070a1cdcf | 85 | if (_turn_flag == 1) { |
| el17arm | 28:a38070a1cdcf | 86 | _x = _x - 0.5; |
| el17arm | 28:a38070a1cdcf | 87 | _counter--; |
| el17arm | 28:a38070a1cdcf | 88 | } |
| el17arm | 28:a38070a1cdcf | 89 | if (_counter == 0) { |
| el17arm | 28:a38070a1cdcf | 90 | _turn_flag = 0; |
| el17arm | 28:a38070a1cdcf | 91 | } |
| el17arm | 28:a38070a1cdcf | 92 | } |
| el17arm | 28:a38070a1cdcf | 93 | |
| el17arm | 28:a38070a1cdcf | 94 | bool Miner::enemy_collision() |
| el17arm | 28:a38070a1cdcf | 95 | { |
| el17arm | 28:a38070a1cdcf | 96 | Vector2D p = get_pos(); |
| el17arm | 28:a38070a1cdcf | 97 | |
| el17arm | 28:a38070a1cdcf | 98 | if (p.x < _x+2 && p.x+2 > _x && p.y < _y+4 && p.y+8 > _y) { |
| el17arm | 28:a38070a1cdcf | 99 | return true; |
| el17arm | 28:a38070a1cdcf | 100 | } else { |
| el17arm | 28:a38070a1cdcf | 101 | return false; |
| el17arm | 28:a38070a1cdcf | 102 | } |
| el17arm | 27:e73dd64ef334 | 103 | } |