Two player imu pong

Dependencies:   4DGL-uLCD-SE IMUfilter LSM9DS0 PinDetect mbed

Committer:
rrr93
Date:
Thu Oct 22 16:50:22 2015 +0000
Revision:
0:941225f01ccc
qewrt

Who changed what in which revision?

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