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
Minerengine.cpp@12:adf4ec04ced2, 2019-03-28 (annotated)
- Committer:
- el17arm
- Date:
- Thu Mar 28 22:30:56 2019 +0000
- Revision:
- 12:adf4ec04ced2
- Parent:
- 11:61f28e3448d3
- Child:
- 13:3bf02cb26d6d
not ideal but made x & y coords global. ; ; This is because in levelengine I am getting p.x = 0 and is not updating in line with p.x in minerengine. This is holding me back so will proceed as above and will hopefully fix at later date
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| el17arm | 0:fe19852199d2 | 1 | #include "Minerengine.h" |
| el17arm | 0:fe19852199d2 | 2 | |
| el17arm | 12:adf4ec04ced2 | 3 | int _x; |
| el17arm | 12:adf4ec04ced2 | 4 | int _y; |
| el17arm | 7:c6e6ec0e3396 | 5 | |
| el17arm | 0:fe19852199d2 | 6 | Minerengine::Minerengine() |
| el17arm | 0:fe19852199d2 | 7 | { |
| el17arm | 0:fe19852199d2 | 8 | } |
| el17arm | 0:fe19852199d2 | 9 | |
| el17arm | 1:813ba5341985 | 10 | Minerengine::~Minerengine() |
| el17arm | 0:fe19852199d2 | 11 | { |
| el17arm | 1:813ba5341985 | 12 | } |
| el17arm | 0:fe19852199d2 | 13 | |
| el17arm | 8:9bc80e40ac0d | 14 | void Minerengine::miner_init() |
| el17arm | 7:c6e6ec0e3396 | 15 | { |
| el17arm | 7:c6e6ec0e3396 | 16 | _x = 3; |
| el17arm | 7:c6e6ec0e3396 | 17 | _y = 33; |
| el17arm | 7:c6e6ec0e3396 | 18 | } |
| el17arm | 8:9bc80e40ac0d | 19 | |
| el17arm | 12:adf4ec04ced2 | 20 | Vector2D Minerengine::get_pos() |
| el17arm | 12:adf4ec04ced2 | 21 | { |
| el17arm | 12:adf4ec04ced2 | 22 | Vector2D p = {_x,_y}; |
| el17arm | 12:adf4ec04ced2 | 23 | printf("p.x = %f \n", p.x); |
| el17arm | 12:adf4ec04ced2 | 24 | return p; |
| el17arm | 12:adf4ec04ced2 | 25 | } |
| el17arm | 7:c6e6ec0e3396 | 26 | |
| el17arm | 1:813ba5341985 | 27 | void Minerengine::read_direction(Gamepad &pad) |
| el17arm | 1:813ba5341985 | 28 | { |
| el17arm | 1:813ba5341985 | 29 | _d = pad.get_direction(); |
| el17arm | 9:f16581e1eba9 | 30 | } |
| el17arm | 9:f16581e1eba9 | 31 | |
| el17arm | 9:f16581e1eba9 | 32 | void Minerengine::miner_collision(N5110 &lcd) |
| el17arm | 9:f16581e1eba9 | 33 | { |
| el17arm | 11:61f28e3448d3 | 34 | /*_right_collision = lcd.getPixel(_x+3,_y) + lcd.getPixel(_x+3,_y+3) + |
| el17arm | 10:65a6866d418b | 35 | lcd.getPixel(_x+3,_y+5) + lcd.getPixel(_x+3,_y+7); |
| el17arm | 10:65a6866d418b | 36 | |
| el17arm | 10:65a6866d418b | 37 | _left_collision = lcd.getPixel(_x-1,_y) + lcd.getPixel(_x-1,_y+3) + |
| el17arm | 11:61f28e3448d3 | 38 | lcd.getPixel(_x-1,_y+5) + lcd.getPixel(_x-1,_y+7);*/ |
| el17arm | 10:65a6866d418b | 39 | |
| el17arm | 10:65a6866d418b | 40 | _jump = (lcd.getPixel(_x+4,_y+8) || lcd.getPixel(_x-1,_y+8)); |
| el17arm | 10:65a6866d418b | 41 | |
| el17arm | 10:65a6866d418b | 42 | _stop_jump = lcd.getPixel(_x,_y-2) || lcd.getPixel(_x+3,_y-2); |
| el17arm | 11:61f28e3448d3 | 43 | |
| el17arm | 12:adf4ec04ced2 | 44 | _gravity = !lcd.getPixel(_x,_y+8) && !lcd.getPixel(_x+2, _y+8); |
| el17arm | 1:813ba5341985 | 45 | } |
| el17arm | 0:fe19852199d2 | 46 | |
| el17arm | 10:65a6866d418b | 47 | void Minerengine::miner_move() |
| el17arm | 1:813ba5341985 | 48 | { |
| el17arm | 11:61f28e3448d3 | 49 | if (_d==E && _x < WIDTH-3) { |
| el17arm | 9:f16581e1eba9 | 50 | _x++; |
| el17arm | 10:65a6866d418b | 51 | _direction = 1; //chooses right facing sprite |
| el17arm | 0:fe19852199d2 | 52 | } |
| el17arm | 11:61f28e3448d3 | 53 | if (_d==W && _x > 0) { |
| el17arm | 9:f16581e1eba9 | 54 | _x--; |
| el17arm | 10:65a6866d418b | 55 | _direction = 0; //chooses left facing sprite |
| el17arm | 1:813ba5341985 | 56 | } |
| el17arm | 1:813ba5341985 | 57 | } |
| el17arm | 6:866281ce2b44 | 58 | |
| el17arm | 1:813ba5341985 | 59 | void Minerengine::miner_jump(N5110 &lcd, Gamepad &pad) |
| el17arm | 1:813ba5341985 | 60 | { |
| el17arm | 11:61f28e3448d3 | 61 | if(pad.check_event(Gamepad::A_PRESSED) && _jump==1) { |
| el17arm | 11:61f28e3448d3 | 62 | int i=0; |
| el17arm | 11:61f28e3448d3 | 63 | while(i < 8){ |
| el17arm | 11:61f28e3448d3 | 64 | _y = _y--; |
| el17arm | 11:61f28e3448d3 | 65 | i++; |
| el17arm | 1:813ba5341985 | 66 | } |
| el17arm | 1:813ba5341985 | 67 | } |
| el17arm | 1:813ba5341985 | 68 | } |
| el17arm | 0:fe19852199d2 | 69 | |
| el17arm | 1:813ba5341985 | 70 | void Minerengine::miner_draw(N5110 &lcd) |
| el17arm | 1:813ba5341985 | 71 | { |
| el17arm | 2:725c213b2396 | 72 | if (_direction == 1) { |
| el17arm | 6:866281ce2b44 | 73 | lcd.drawSprite(_x,_y,8,3,(int *)miner_right); |
| el17arm | 1:813ba5341985 | 74 | } |
| el17arm | 2:725c213b2396 | 75 | if (_direction == 0) { |
| el17arm | 6:866281ce2b44 | 76 | lcd.drawSprite(_x,_y,8,3,(int *)miner_left); |
| el17arm | 0:fe19852199d2 | 77 | } |
| el17arm | 3:d27ee2440829 | 78 | } |
| el17arm | 3:d27ee2440829 | 79 | |
| el17arm | 3:d27ee2440829 | 80 | void Minerengine::miner_gravity(N5110 &lcd) |
| el17arm | 3:d27ee2440829 | 81 | { |
| el17arm | 11:61f28e3448d3 | 82 | if(_gravity == 1) { |
| el17arm | 3:d27ee2440829 | 83 | _y = _y + 1; |
| el17arm | 4:b92da6a09c8b | 84 | } |
| el17arm | 12:adf4ec04ced2 | 85 | } |
| el17arm | 12:adf4ec04ced2 | 86 | |
| el17arm | 12:adf4ec04ced2 | 87 | int Minerengine::test() |
| el17arm | 12:adf4ec04ced2 | 88 | { |
| el17arm | 12:adf4ec04ced2 | 89 | int t = _x; |
| el17arm | 12:adf4ec04ced2 | 90 | printf("t = %i \n", t); |
| el17arm | 12:adf4ec04ced2 | 91 | return t; |
| el17arm | 7:c6e6ec0e3396 | 92 | } |