![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Two player imu pong
Dependencies: 4DGL-uLCD-SE IMUfilter LSM9DS0 PinDetect mbed
Paddle.cpp@0:941225f01ccc, 2015-10-22 (annotated)
- Committer:
- rrr93
- Date:
- Thu Oct 22 16:50:22 2015 +0000
- Revision:
- 0:941225f01ccc
qewrt
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rrr93 | 0:941225f01ccc | 1 | #include "paddle.h" |
rrr93 | 0:941225f01ccc | 2 | |
rrr93 | 0:941225f01ccc | 3 | |
rrr93 | 0:941225f01ccc | 4 | Paddle::Paddle(int len, int width) |
rrr93 | 0:941225f01ccc | 5 | { |
rrr93 | 0:941225f01ccc | 6 | setLength(len); |
rrr93 | 0:941225f01ccc | 7 | setWidth(width); |
rrr93 | 0:941225f01ccc | 8 | setPaddleMove(8); |
rrr93 | 0:941225f01ccc | 9 | y = 1; |
rrr93 | 0:941225f01ccc | 10 | x = 118; |
rrr93 | 0:941225f01ccc | 11 | oldy = y; |
rrr93 | 0:941225f01ccc | 12 | resetScore(); |
rrr93 | 0:941225f01ccc | 13 | |
rrr93 | 0:941225f01ccc | 14 | |
rrr93 | 0:941225f01ccc | 15 | } |
rrr93 | 0:941225f01ccc | 16 | |
rrr93 | 0:941225f01ccc | 17 | Paddle::Paddle(int len, int wid, int xi, int yi) |
rrr93 | 0:941225f01ccc | 18 | { |
rrr93 | 0:941225f01ccc | 19 | setLength(len); |
rrr93 | 0:941225f01ccc | 20 | setWidth(wid); |
rrr93 | 0:941225f01ccc | 21 | setPaddleMove(8); |
rrr93 | 0:941225f01ccc | 22 | y = yi; |
rrr93 | 0:941225f01ccc | 23 | x = xi; |
rrr93 | 0:941225f01ccc | 24 | oldy = y; |
rrr93 | 0:941225f01ccc | 25 | resetScore(); |
rrr93 | 0:941225f01ccc | 26 | |
rrr93 | 0:941225f01ccc | 27 | } |
rrr93 | 0:941225f01ccc | 28 | //set functions |
rrr93 | 0:941225f01ccc | 29 | void Paddle::setLength(int len) |
rrr93 | 0:941225f01ccc | 30 | { |
rrr93 | 0:941225f01ccc | 31 | length = len; |
rrr93 | 0:941225f01ccc | 32 | |
rrr93 | 0:941225f01ccc | 33 | } |
rrr93 | 0:941225f01ccc | 34 | void Paddle::setWidth(int wid) |
rrr93 | 0:941225f01ccc | 35 | { |
rrr93 | 0:941225f01ccc | 36 | width = wid; |
rrr93 | 0:941225f01ccc | 37 | } |
rrr93 | 0:941225f01ccc | 38 | |
rrr93 | 0:941225f01ccc | 39 | void Paddle::setPaddleMove(int move) |
rrr93 | 0:941225f01ccc | 40 | { |
rrr93 | 0:941225f01ccc | 41 | paddleMove = move; |
rrr93 | 0:941225f01ccc | 42 | } |
rrr93 | 0:941225f01ccc | 43 | /* |
rrr93 | 0:941225f01ccc | 44 | void Paddle::setLimits(int top, int bot) |
rrr93 | 0:941225f01ccc | 45 | { |
rrr93 | 0:941225f01ccc | 46 | topLimit = top; |
rrr93 | 0:941225f01ccc | 47 | bottomLimit = bot; |
rrr93 | 0:941225f01ccc | 48 | } |
rrr93 | 0:941225f01ccc | 49 | */ |
rrr93 | 0:941225f01ccc | 50 | // get Function |
rrr93 | 0:941225f01ccc | 51 | int Paddle::getScore() |
rrr93 | 0:941225f01ccc | 52 | { |
rrr93 | 0:941225f01ccc | 53 | return score; |
rrr93 | 0:941225f01ccc | 54 | |
rrr93 | 0:941225f01ccc | 55 | } |
rrr93 | 0:941225f01ccc | 56 | //Member Functions |
rrr93 | 0:941225f01ccc | 57 | void Paddle::movePaddle(bool mv) |
rrr93 | 0:941225f01ccc | 58 | { |
rrr93 | 0:941225f01ccc | 59 | if (mv) |
rrr93 | 0:941225f01ccc | 60 | {if(y > paddleMove) |
rrr93 | 0:941225f01ccc | 61 | {y -=paddleMove;} // end of inner if |
rrr93 | 0:941225f01ccc | 62 | } // end of outer if |
rrr93 | 0:941225f01ccc | 63 | else |
rrr93 | 0:941225f01ccc | 64 | { |
rrr93 | 0:941225f01ccc | 65 | if(y < 127 - paddleMove - length) |
rrr93 | 0:941225f01ccc | 66 | { y+= paddleMove;} |
rrr93 | 0:941225f01ccc | 67 | }//end of else |
rrr93 | 0:941225f01ccc | 68 | }//ends function |
rrr93 | 0:941225f01ccc | 69 | |
rrr93 | 0:941225f01ccc | 70 | bool Paddle::checkHitX(int xpos, int ypos, int radius, bool left) |
rrr93 | 0:941225f01ccc | 71 | { |
rrr93 | 0:941225f01ccc | 72 | |
rrr93 | 0:941225f01ccc | 73 | if (left) |
rrr93 | 0:941225f01ccc | 74 | { |
rrr93 | 0:941225f01ccc | 75 | if ((xpos <= x+radius+width) && (ypos <= y +length) && (ypos>=y)) |
rrr93 | 0:941225f01ccc | 76 | { score = score +1; |
rrr93 | 0:941225f01ccc | 77 | return true; |
rrr93 | 0:941225f01ccc | 78 | } |
rrr93 | 0:941225f01ccc | 79 | else |
rrr93 | 0:941225f01ccc | 80 | { return false;} |
rrr93 | 0:941225f01ccc | 81 | |
rrr93 | 0:941225f01ccc | 82 | } |
rrr93 | 0:941225f01ccc | 83 | else { |
rrr93 | 0:941225f01ccc | 84 | if ((xpos>= x-radius) && (ypos <= y +length) && (ypos>=y)) |
rrr93 | 0:941225f01ccc | 85 | { score = score +1; |
rrr93 | 0:941225f01ccc | 86 | return true; |
rrr93 | 0:941225f01ccc | 87 | } |
rrr93 | 0:941225f01ccc | 88 | else |
rrr93 | 0:941225f01ccc | 89 | { return false;} |
rrr93 | 0:941225f01ccc | 90 | } |
rrr93 | 0:941225f01ccc | 91 | } |
rrr93 | 0:941225f01ccc | 92 | |
rrr93 | 0:941225f01ccc | 93 | bool Paddle::checkHitY(int xpos, int ypos, int radius) |
rrr93 | 0:941225f01ccc | 94 | { |
rrr93 | 0:941225f01ccc | 95 | if (((xpos >= x) && (xpos <= x+3)) && |
rrr93 | 0:941225f01ccc | 96 | ((ypos>=y) && (ypos<=y +length))) |
rrr93 | 0:941225f01ccc | 97 | { return true;} |
rrr93 | 0:941225f01ccc | 98 | else |
rrr93 | 0:941225f01ccc | 99 | {return false;} |
rrr93 | 0:941225f01ccc | 100 | } |
rrr93 | 0:941225f01ccc | 101 | |
rrr93 | 0:941225f01ccc | 102 | void Paddle::resetScore() |
rrr93 | 0:941225f01ccc | 103 | { score = 0; |
rrr93 | 0:941225f01ccc | 104 | |
rrr93 | 0:941225f01ccc | 105 | } |
rrr93 | 0:941225f01ccc | 106 | |
rrr93 | 0:941225f01ccc | 107 | void Paddle::initDraw(uLCD_4DGL *screen) |
rrr93 | 0:941225f01ccc | 108 | { |
rrr93 | 0:941225f01ccc | 109 | screen->filled_rectangle(x, y, x+width, y+length, BLUE); |
rrr93 | 0:941225f01ccc | 110 | |
rrr93 | 0:941225f01ccc | 111 | } |
rrr93 | 0:941225f01ccc | 112 | |
rrr93 | 0:941225f01ccc | 113 | void Paddle::redraw(uLCD_4DGL *uLCD) |
rrr93 | 0:941225f01ccc | 114 | { |
rrr93 | 0:941225f01ccc | 115 | if(oldy > y) { |
rrr93 | 0:941225f01ccc | 116 | uLCD->filled_rectangle(x, oldy-paddleMove+1, x+width, oldy, BLUE); |
rrr93 | 0:941225f01ccc | 117 | uLCD->filled_rectangle(x, oldy+length-paddleMove+1, x+width, oldy+length, BLACK); |
rrr93 | 0:941225f01ccc | 118 | oldy = y; |
rrr93 | 0:941225f01ccc | 119 | } |
rrr93 | 0:941225f01ccc | 120 | else if(oldy < y) { |
rrr93 | 0:941225f01ccc | 121 | uLCD->filled_rectangle(x, oldy, x+width, oldy+paddleMove, BLACK); |
rrr93 | 0:941225f01ccc | 122 | uLCD->filled_rectangle(x, oldy+length,x+width, oldy+length+paddleMove, BLUE); |
rrr93 | 0:941225f01ccc | 123 | oldy = y; |
rrr93 | 0:941225f01ccc | 124 | } |
rrr93 | 0:941225f01ccc | 125 | } |
rrr93 | 0:941225f01ccc | 126 | |
rrr93 | 0:941225f01ccc | 127 |