ELEC2645 (2018/19) / Mbed 2 deprecated el17zl

Dependencies:   mbed

Fork of el17zl by Zhenwen Liao

Committer:
franklzw
Date:
Tue Apr 30 09:58:30 2019 +0000
Revision:
13:5930f0e5889d
Parent:
8:83891ea9a5d9
most of the class, detial with doxygen comments

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 13:5930f0e5889d 37 void Ppl::update(int bb,int ba,int bx,int by,int indicator,
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 7:6f8aeadc4370 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 7:6f8aeadc4370 52
franklzw 6:6b083e22cb53 53 hold_ppl_against_wall();
franklzw 13:5930f0e5889d 54 hold_ppl_box_touching(indicator);
franklzw 6:6b083e22cb53 55
franklzw 6:6b083e22cb53 56 }
franklzw 6:6b083e22cb53 57
franklzw 6:6b083e22cb53 58 Vector2D Ppl::get_pos()
franklzw 6:6b083e22cb53 59 {
franklzw 6:6b083e22cb53 60 Vector2D p = {_x,_y};
franklzw 6:6b083e22cb53 61 return p;
franklzw 6:6b083e22cb53 62 }
franklzw 6:6b083e22cb53 63
franklzw 6:6b083e22cb53 64 void Ppl::set_pos(Vector2D p)
franklzw 6:6b083e22cb53 65 {
franklzw 6:6b083e22cb53 66 _x = p.x;
franklzw 6:6b083e22cb53 67 _y = p.y;
franklzw 6:6b083e22cb53 68 }
franklzw 6:6b083e22cb53 69
franklzw 6:6b083e22cb53 70 bool Ppl::hold_beside_barrier(int barrier_x,int barrier_y) // check after moving if ppl pos match the barrier
franklzw 6:6b083e22cb53 71 {
franklzw 13:5930f0e5889d 72 // if matched barrier return ture
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 13:5930f0e5889d 105 void Ppl::hold_ppl_box_touching(int indicator) //check for box facing wall and hold pos of ppl
franklzw 13:5930f0e5889d 106 // 0: do nothing
franklzw 13:5930f0e5889d 107 // 1: next move box off the left hold ppl in x = 10; 2: next move box off the right hold ppl in x = 66;
franklzw 13:5930f0e5889d 108 // 3: next move box off the top hold ppl in y = 12; 4: next move box off the bottom hold ppl in y = 28;
franklzw 6:6b083e22cb53 109 {
franklzw 13:5930f0e5889d 110 if (indicator == 0 ) {
franklzw 6:6b083e22cb53 111 _y = _y;
franklzw 6:6b083e22cb53 112 _x = _x;
franklzw 13:5930f0e5889d 113 } else if (indicator == 1 && _x <=10) {
franklzw 6:6b083e22cb53 114 _x = 10;
franklzw 13:5930f0e5889d 115 } else if (indicator == 2 && _x >=66) {
franklzw 6:6b083e22cb53 116 _x = 66;
franklzw 13:5930f0e5889d 117 } else if (indicator == 3 && _y <=12 ) {
franklzw 6:6b083e22cb53 118 _y = 12;
franklzw 13:5930f0e5889d 119 } else if (indicator == 4 && _y >=28) {
franklzw 6:6b083e22cb53 120 _y = 28;
franklzw 8:83891ea9a5d9 121 }
franklzw 6:6b083e22cb53 122 }
franklzw 6:6b083e22cb53 123
franklzw 6:6b083e22cb53 124 void Ppl::hold_ppl_against_wall() // check the y origin to ensure that the paddle doesn't go off screen
franklzw 6:6b083e22cb53 125 {
franklzw 3:9fa31396d89d 126 if (_y < 4) {
franklzw 3:9fa31396d89d 127 _y = 4;
franklzw 3:9fa31396d89d 128 }
franklzw 5:b50ce6160013 129 if (_y > 36) {
franklzw 5:b50ce6160013 130 _y = 36;
franklzw 3:9fa31396d89d 131 }
franklzw 5:b50ce6160013 132 if (_x > 74) {
franklzw 5:b50ce6160013 133 _x = 74;
franklzw 3:9fa31396d89d 134 }
franklzw 3:9fa31396d89d 135 if (_x < 2) {
franklzw 3:9fa31396d89d 136 _x = 2;
franklzw 3:9fa31396d89d 137 }
franklzw 3:9fa31396d89d 138 }