ELEC2645 (2018/19) / Mbed 2 deprecated el17zl

Dependencies:   mbed

Fork of el17zl by Zhenwen Liao

Committer:
franklzw
Date:
Thu Apr 11 13:42:34 2019 +0000
Revision:
6:6b083e22cb53
Parent:
5:b50ce6160013
Child:
7:6f8aeadc4370
commision;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
franklzw 3:9fa31396d89d 1 #include "Ppl.h"
franklzw 3:9fa31396d89d 2
franklzw 3:9fa31396d89d 3 const int ppl[8][8]= {
franklzw 3:9fa31396d89d 4 {0,0,0,0,1,1,1,0},
franklzw 3:9fa31396d89d 5 {0,0,0,0,1,0,1,0},
franklzw 3:9fa31396d89d 6 {0,0,0,0,1,1,1,0},
franklzw 3:9fa31396d89d 7 {1,0,0,0,0,1,0,0},
franklzw 3:9fa31396d89d 8 {0,1,1,0,0,1,0,0},
franklzw 3:9fa31396d89d 9 {0,0,0,1,1,1,0,0},
franklzw 3:9fa31396d89d 10 {0,0,0,0,0,1,0,0},
franklzw 3:9fa31396d89d 11 {0,0,0,1,1,0,1,1},
franklzw 3:9fa31396d89d 12
franklzw 3:9fa31396d89d 13 };
franklzw 3:9fa31396d89d 14
franklzw 3:9fa31396d89d 15 Ppl::Ppl()
franklzw 3:9fa31396d89d 16 {
franklzw 3:9fa31396d89d 17
franklzw 3:9fa31396d89d 18 }
franklzw 3:9fa31396d89d 19
franklzw 3:9fa31396d89d 20 Ppl::~Ppl()
franklzw 3:9fa31396d89d 21 {
franklzw 3:9fa31396d89d 22
franklzw 3:9fa31396d89d 23 }
franklzw 3:9fa31396d89d 24
franklzw 3:9fa31396d89d 25 void Ppl::init(int x0, int y0)
franklzw 3:9fa31396d89d 26 {
franklzw 3:9fa31396d89d 27 _x = x0;
franklzw 3:9fa31396d89d 28 _y = y0;
franklzw 3:9fa31396d89d 29
franklzw 3:9fa31396d89d 30 }
franklzw 3:9fa31396d89d 31
franklzw 3:9fa31396d89d 32 void Ppl::draw(N5110 &lcd)
franklzw 3:9fa31396d89d 33 {
franklzw 3:9fa31396d89d 34 lcd.drawSprite(_x,_y,8,8,(int *)ppl);
franklzw 3:9fa31396d89d 35 }
franklzw 3:9fa31396d89d 36
franklzw 6:6b083e22cb53 37 void Ppl::update(int bb,int ba,int bx,int by,int temp,
franklzw 6:6b083e22cb53 38 int barrier_x,int barrier_y)
franklzw 6:6b083e22cb53 39 {
franklzw 6:6b083e22cb53 40 int temp_x = _x;
franklzw 6:6b083e22cb53 41 int temp_y = _y;
franklzw 6:6b083e22cb53 42
franklzw 6:6b083e22cb53 43 move_ppl(bb,ba,bx,by);
franklzw 6:6b083e22cb53 44
franklzw 6:6b083e22cb53 45 if (hold_beside_barrier(barrier_x,barrier_y)) {
franklzw 6:6b083e22cb53 46 _x = temp_x;
franklzw 6:6b083e22cb53 47 _y = temp_y;
franklzw 6:6b083e22cb53 48 } else {
franklzw 5:b50ce6160013 49 _x = _x;
franklzw 5:b50ce6160013 50 _y = _y;
franklzw 6:6b083e22cb53 51 }
franklzw 6:6b083e22cb53 52 hold_ppl_against_wall();
franklzw 6:6b083e22cb53 53 hold_ppl_box_touching(temp);
franklzw 6:6b083e22cb53 54
franklzw 6:6b083e22cb53 55 }
franklzw 6:6b083e22cb53 56
franklzw 6:6b083e22cb53 57 Vector2D Ppl::get_pos()
franklzw 6:6b083e22cb53 58 {
franklzw 6:6b083e22cb53 59 Vector2D p = {_x,_y};
franklzw 6:6b083e22cb53 60 return p;
franklzw 6:6b083e22cb53 61 }
franklzw 6:6b083e22cb53 62
franklzw 6:6b083e22cb53 63 void Ppl::set_pos(Vector2D p)
franklzw 6:6b083e22cb53 64 {
franklzw 6:6b083e22cb53 65 _x = p.x;
franklzw 6:6b083e22cb53 66 _y = p.y;
franklzw 6:6b083e22cb53 67 }
franklzw 6:6b083e22cb53 68
franklzw 6:6b083e22cb53 69 bool Ppl::hold_beside_barrier(int barrier_x,int barrier_y) // check after moving if ppl pos match the barrier
franklzw 6:6b083e22cb53 70 {
franklzw 6:6b083e22cb53 71 // if matched return ture
franklzw 6:6b083e22cb53 72
franklzw 6:6b083e22cb53 73 if (_x == barrier_x &&_y == barrier_y) {
franklzw 6:6b083e22cb53 74 return true;
franklzw 6:6b083e22cb53 75 } else {
franklzw 6:6b083e22cb53 76 return false;
franklzw 6:6b083e22cb53 77 }
franklzw 6:6b083e22cb53 78 }
franklzw 6:6b083e22cb53 79
franklzw 6:6b083e22cb53 80 void Ppl::move_ppl(int bb,int ba,int bx,int by) //move the ppl with respect to the bottom read
franklzw 6:6b083e22cb53 81 {
franklzw 6:6b083e22cb53 82
franklzw 6:6b083e22cb53 83 if (bx ==0 && bb == 0 && by == 0 && ba == 0) {
franklzw 6:6b083e22cb53 84 _x = _x;
franklzw 6:6b083e22cb53 85 _y = _y;
franklzw 6:6b083e22cb53 86 }
franklzw 6:6b083e22cb53 87 if (bx == 1) {
franklzw 5:b50ce6160013 88 _x = _x-8;
franklzw 5:b50ce6160013 89 _y = _y;
franklzw 6:6b083e22cb53 90 }
franklzw 6:6b083e22cb53 91 if (bb == 1) {
franklzw 5:b50ce6160013 92 _x = _x+8;
franklzw 5:b50ce6160013 93 _y = _y;
franklzw 6:6b083e22cb53 94 }
franklzw 6:6b083e22cb53 95 if (by == 1) {
franklzw 5:b50ce6160013 96 _y = _y-8;
franklzw 5:b50ce6160013 97 _x = _x;
franklzw 6:6b083e22cb53 98 }
franklzw 6:6b083e22cb53 99 if (ba == 1) {
franklzw 5:b50ce6160013 100 _y = _y+8;
franklzw 5:b50ce6160013 101 _x = _x;
franklzw 6:6b083e22cb53 102 }
franklzw 6:6b083e22cb53 103 }
franklzw 6:6b083e22cb53 104
franklzw 6:6b083e22cb53 105 void Ppl::hold_ppl_box_touching(int temp) //check for box facing wall and hold pos of ppl
franklzw 6:6b083e22cb53 106 {
franklzw 6:6b083e22cb53 107 if (temp == 0 ) {
franklzw 6:6b083e22cb53 108 _y = _y;
franklzw 6:6b083e22cb53 109 _x = _x;
franklzw 6:6b083e22cb53 110 } else if (temp == 1) {
franklzw 6:6b083e22cb53 111 _x = 10;
franklzw 6:6b083e22cb53 112 } else if (temp == 2) {
franklzw 6:6b083e22cb53 113 _x = 66;
franklzw 6:6b083e22cb53 114 } else if (temp == 3) {
franklzw 6:6b083e22cb53 115 _y = 12;
franklzw 6:6b083e22cb53 116 } else if (temp == 4) {
franklzw 6:6b083e22cb53 117 _y = 28;
franklzw 6:6b083e22cb53 118 }
franklzw 6:6b083e22cb53 119 }
franklzw 6:6b083e22cb53 120
franklzw 6:6b083e22cb53 121 void Ppl::hold_ppl_against_wall() // check the y origin to ensure that the paddle doesn't go off screen
franklzw 6:6b083e22cb53 122 {
franklzw 3:9fa31396d89d 123 if (_y < 4) {
franklzw 3:9fa31396d89d 124 _y = 4;
franklzw 3:9fa31396d89d 125 }
franklzw 5:b50ce6160013 126 if (_y > 36) {
franklzw 5:b50ce6160013 127 _y = 36;
franklzw 3:9fa31396d89d 128 }
franklzw 5:b50ce6160013 129 if (_x > 74) {
franklzw 5:b50ce6160013 130 _x = 74;
franklzw 3:9fa31396d89d 131 }
franklzw 3:9fa31396d89d 132 if (_x < 2) {
franklzw 3:9fa31396d89d 133 _x = 2;
franklzw 3:9fa31396d89d 134 }
franklzw 3:9fa31396d89d 135 }