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@10:65a6866d418b, 2019-03-27 (annotated)
- Committer:
- el17arm
- Date:
- Wed Mar 27 21:51:11 2019 +0000
- Revision:
- 10:65a6866d418b
- Parent:
- 9:f16581e1eba9
- Child:
- 11:61f28e3448d3
collision is now seperate function move function.; ; will now implement (in terms of collision) solid and transparent platforms
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 | 7:c6e6ec0e3396 | 3 | |
| el17arm | 0:fe19852199d2 | 4 | Minerengine::Minerengine() |
| el17arm | 0:fe19852199d2 | 5 | { |
| el17arm | 0:fe19852199d2 | 6 | } |
| el17arm | 0:fe19852199d2 | 7 | |
| el17arm | 1:813ba5341985 | 8 | Minerengine::~Minerengine() |
| el17arm | 0:fe19852199d2 | 9 | { |
| el17arm | 1:813ba5341985 | 10 | } |
| el17arm | 0:fe19852199d2 | 11 | |
| el17arm | 8:9bc80e40ac0d | 12 | void Minerengine::miner_init() |
| el17arm | 7:c6e6ec0e3396 | 13 | { |
| el17arm | 7:c6e6ec0e3396 | 14 | _x = 3; |
| el17arm | 7:c6e6ec0e3396 | 15 | _y = 33; |
| el17arm | 7:c6e6ec0e3396 | 16 | } |
| el17arm | 8:9bc80e40ac0d | 17 | |
| el17arm | 7:c6e6ec0e3396 | 18 | |
| el17arm | 1:813ba5341985 | 19 | void Minerengine::read_direction(Gamepad &pad) |
| el17arm | 1:813ba5341985 | 20 | { |
| el17arm | 1:813ba5341985 | 21 | _d = pad.get_direction(); |
| el17arm | 9:f16581e1eba9 | 22 | } |
| el17arm | 9:f16581e1eba9 | 23 | |
| el17arm | 9:f16581e1eba9 | 24 | void Minerengine::miner_collision(N5110 &lcd) |
| el17arm | 9:f16581e1eba9 | 25 | { |
| el17arm | 10:65a6866d418b | 26 | _right_collision = lcd.getPixel(_x+3,_y) + lcd.getPixel(_x+3,_y+3) + |
| el17arm | 10:65a6866d418b | 27 | lcd.getPixel(_x+3,_y+5) + lcd.getPixel(_x+3,_y+7); |
| el17arm | 10:65a6866d418b | 28 | |
| el17arm | 10:65a6866d418b | 29 | _left_collision = lcd.getPixel(_x-1,_y) + lcd.getPixel(_x-1,_y+3) + |
| el17arm | 10:65a6866d418b | 30 | lcd.getPixel(_x-1,_y+5) + lcd.getPixel(_x-1,_y+7); |
| el17arm | 10:65a6866d418b | 31 | |
| el17arm | 10:65a6866d418b | 32 | _jump = (lcd.getPixel(_x+4,_y+8) || lcd.getPixel(_x-1,_y+8)); |
| el17arm | 10:65a6866d418b | 33 | |
| el17arm | 10:65a6866d418b | 34 | _stop_jump = lcd.getPixel(_x,_y-2) || lcd.getPixel(_x+3,_y-2); |
| el17arm | 1:813ba5341985 | 35 | } |
| el17arm | 0:fe19852199d2 | 36 | |
| el17arm | 10:65a6866d418b | 37 | void Minerengine::miner_move() |
| el17arm | 1:813ba5341985 | 38 | { |
| el17arm | 10:65a6866d418b | 39 | if (_d==E && _right_collision == 0) { |
| el17arm | 9:f16581e1eba9 | 40 | _x++; |
| el17arm | 10:65a6866d418b | 41 | _direction = 1; //chooses right facing sprite |
| el17arm | 0:fe19852199d2 | 42 | } |
| el17arm | 10:65a6866d418b | 43 | if (_d==W && _left_collision == 0) { |
| el17arm | 9:f16581e1eba9 | 44 | _x--; |
| el17arm | 10:65a6866d418b | 45 | _direction = 0; //chooses left facing sprite |
| el17arm | 1:813ba5341985 | 46 | } |
| el17arm | 1:813ba5341985 | 47 | } |
| el17arm | 6:866281ce2b44 | 48 | |
| el17arm | 1:813ba5341985 | 49 | void Minerengine::miner_jump(N5110 &lcd, Gamepad &pad) |
| el17arm | 1:813ba5341985 | 50 | { |
| el17arm | 10:65a6866d418b | 51 | if(_d==3 && pad.check_event(Gamepad::A_PRESSED) && _jump==1) { |
| el17arm | 2:725c213b2396 | 52 | for (int i = 0; i < 6; i++) { |
| el17arm | 1:813ba5341985 | 53 | _y = _y -1; |
| el17arm | 4:b92da6a09c8b | 54 | |
| el17arm | 10:65a6866d418b | 55 | if(_stop_jump == 1) { |
| el17arm | 3:d27ee2440829 | 56 | i = 6; |
| el17arm | 3:d27ee2440829 | 57 | } |
| el17arm | 1:813ba5341985 | 58 | } |
| el17arm | 0:fe19852199d2 | 59 | } |
| el17arm | 10:65a6866d418b | 60 | if(_d==7 && pad.check_event(Gamepad::A_PRESSED) && _jump == 1) { |
| el17arm | 2:725c213b2396 | 61 | for (int i = 0; i < 6; i++) { |
| el17arm | 1:813ba5341985 | 62 | _y = _y -1; |
| el17arm | 10:65a6866d418b | 63 | |
| el17arm | 10:65a6866d418b | 64 | if(_stop_jump == 1) { |
| el17arm | 3:d27ee2440829 | 65 | i = 6; |
| el17arm | 3:d27ee2440829 | 66 | } |
| el17arm | 2:725c213b2396 | 67 | } |
| el17arm | 4:b92da6a09c8b | 68 | } |
| el17arm | 10:65a6866d418b | 69 | if(_d==0 && pad.check_event(Gamepad::A_PRESSED) && _jump == 1) { |
| el17arm | 2:725c213b2396 | 70 | for (int i = 0; i < 6; i++) { |
| el17arm | 2:725c213b2396 | 71 | _y = _y -1; |
| el17arm | 10:65a6866d418b | 72 | |
| el17arm | 10:65a6866d418b | 73 | if(_stop_jump == 1) { |
| el17arm | 3:d27ee2440829 | 74 | i = 6; |
| el17arm | 3:d27ee2440829 | 75 | } |
| el17arm | 1:813ba5341985 | 76 | } |
| el17arm | 1:813ba5341985 | 77 | } |
| el17arm | 1:813ba5341985 | 78 | } |
| el17arm | 0:fe19852199d2 | 79 | |
| el17arm | 1:813ba5341985 | 80 | void Minerengine::miner_draw(N5110 &lcd) |
| el17arm | 1:813ba5341985 | 81 | { |
| el17arm | 2:725c213b2396 | 82 | if (_direction == 1) { |
| el17arm | 6:866281ce2b44 | 83 | lcd.drawSprite(_x,_y,8,3,(int *)miner_right); |
| el17arm | 1:813ba5341985 | 84 | } |
| el17arm | 2:725c213b2396 | 85 | if (_direction == 0) { |
| el17arm | 6:866281ce2b44 | 86 | lcd.drawSprite(_x,_y,8,3,(int *)miner_left); |
| el17arm | 0:fe19852199d2 | 87 | } |
| el17arm | 3:d27ee2440829 | 88 | } |
| el17arm | 3:d27ee2440829 | 89 | |
| el17arm | 3:d27ee2440829 | 90 | void Minerengine::miner_gravity(N5110 &lcd) |
| el17arm | 3:d27ee2440829 | 91 | { |
| el17arm | 8:9bc80e40ac0d | 92 | if(!lcd.getPixel(_x, _y + 8) && !lcd.getPixel(_x + 3, _y + 8)) { |
| el17arm | 3:d27ee2440829 | 93 | _y = _y + 1; |
| el17arm | 4:b92da6a09c8b | 94 | } |
| el17arm | 7:c6e6ec0e3396 | 95 | } |