ELEC2645 (2018/19) / Mbed 2 deprecated el17arm

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }