player 1
Dependencies: 4DGL-uLCD-SE PinDetect SparkfunAnalogJoystick mbed-rtos mbed SDFileSystem
Fork of 4180FinalLab by
Wireless 2 Player Pong game
paddle.cpp@10:b57b3fbf8266, 2016-04-29 (annotated)
- Committer:
- Mpmart08
- Date:
- Fri Apr 29 00:51:56 2016 +0000
- Revision:
- 10:b57b3fbf8266
- Parent:
- 8:8cc2aa78348c
wifi stuff
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rishibhargava1 | 3:591086e44bf9 | 1 | #include "paddle.h" |
rishibhargava1 | 3:591086e44bf9 | 2 | |
rishibhargava1 | 3:591086e44bf9 | 3 | Paddle::Paddle(uint8_t initx, uint8_t inity, uint8_t olength, uint8_t owidth){ |
rishibhargava1 | 3:591086e44bf9 | 4 | x = initx; |
rishibhargava1 | 3:591086e44bf9 | 5 | y = inity; |
Mpmart08 | 4:7da18e3c590b | 6 | length = olength; |
Mpmart08 | 4:7da18e3c590b | 7 | width = owidth; |
Mpmart08 | 4:7da18e3c590b | 8 | if (y < 100) { |
rishibhargava1 | 3:591086e44bf9 | 9 | bottom = false; |
rishibhargava1 | 3:591086e44bf9 | 10 | } |
rishibhargava1 | 3:591086e44bf9 | 11 | else { |
rishibhargava1 | 3:591086e44bf9 | 12 | bottom = true; |
rishibhargava1 | 3:591086e44bf9 | 13 | } |
rishibhargava1 | 3:591086e44bf9 | 14 | } |
rishibhargava1 | 3:591086e44bf9 | 15 | |
rishibhargava1 | 3:591086e44bf9 | 16 | void Paddle::setLimits(uint8_t left, uint8_t right){ |
rishibhargava1 | 3:591086e44bf9 | 17 | leftLim = left; |
rishibhargava1 | 3:591086e44bf9 | 18 | rightLim = right; |
rishibhargava1 | 3:591086e44bf9 | 19 | } |
rishibhargava1 | 3:591086e44bf9 | 20 | |
rishibhargava1 | 3:591086e44bf9 | 21 | void Paddle::setMaxMove(uint8_t amt){ |
rishibhargava1 | 3:591086e44bf9 | 22 | maxMove = amt; |
rishibhargava1 | 3:591086e44bf9 | 23 | } |
rishibhargava1 | 3:591086e44bf9 | 24 | |
rishibhargava1 | 3:591086e44bf9 | 25 | uint8_t Paddle::getX(){ |
rishibhargava1 | 3:591086e44bf9 | 26 | return x; |
rishibhargava1 | 3:591086e44bf9 | 27 | } |
rishibhargava1 | 3:591086e44bf9 | 28 | |
rishibhargava1 | 3:591086e44bf9 | 29 | void Paddle::setX(uint8_t newx){ |
rishibhargava1 | 3:591086e44bf9 | 30 | x = newx; |
rishibhargava1 | 3:591086e44bf9 | 31 | } |
rishibhargava1 | 3:591086e44bf9 | 32 | |
rishibhargava1 | 3:591086e44bf9 | 33 | void Paddle::move(float amt){ |
rishibhargava1 | 3:591086e44bf9 | 34 | if (x + amt*maxMove + length > rightLim) |
rishibhargava1 | 3:591086e44bf9 | 35 | x = rightLim - length; |
rishibhargava1 | 3:591086e44bf9 | 36 | else if (x + amt*maxMove < leftLim) |
rishibhargava1 | 3:591086e44bf9 | 37 | x = leftLim; |
rishibhargava1 | 3:591086e44bf9 | 38 | else |
rishibhargava1 | 3:591086e44bf9 | 39 | x = x + amt*maxMove; |
rishibhargava1 | 3:591086e44bf9 | 40 | } |
rishibhargava1 | 3:591086e44bf9 | 41 | |
rishibhargava1 | 3:591086e44bf9 | 42 | bool Paddle::checkHit(uint8_t ballX, uint8_t ballY, uint8_t size){ |
rishibhargava1 | 3:591086e44bf9 | 43 | if (ballX+size/2 >= x && ballX+size/2 <= x+length){ |
Mpmart08 | 4:7da18e3c590b | 44 | if (bottom && (ballY+size >= y-width && ballY <= y-width)){ |
rishibhargava1 | 3:591086e44bf9 | 45 | return true; |
rishibhargava1 | 3:591086e44bf9 | 46 | } |
Mpmart08 | 4:7da18e3c590b | 47 | else if (!bottom && (ballY+size >= y+width && ballY <= y+width)){ |
rishibhargava1 | 3:591086e44bf9 | 48 | return true; |
rishibhargava1 | 3:591086e44bf9 | 49 | } |
rishibhargava1 | 3:591086e44bf9 | 50 | } |
rishibhargava1 | 3:591086e44bf9 | 51 | return false; |
rishibhargava1 | 3:591086e44bf9 | 52 | } |
rishibhargava1 | 3:591086e44bf9 | 53 | |
Mpmart08 | 8:8cc2aa78348c | 54 | uint8_t Paddle::returnAngle(uint8_t ballX, uint8_t size){ |
Mpmart08 | 8:8cc2aa78348c | 55 | uint8_t dist = abs((ballX + size/2) - (x + length/2)); |
Mpmart08 | 8:8cc2aa78348c | 56 | if (dist < 5) |
Mpmart08 | 8:8cc2aa78348c | 57 | return 0; |
Mpmart08 | 8:8cc2aa78348c | 58 | else if (dist < 10) |
Mpmart08 | 8:8cc2aa78348c | 59 | return 1; |
Mpmart08 | 8:8cc2aa78348c | 60 | else if (dist < 15) |
Mpmart08 | 8:8cc2aa78348c | 61 | return 2; |
Mpmart08 | 8:8cc2aa78348c | 62 | else |
Mpmart08 | 8:8cc2aa78348c | 63 | return 3; |
rishibhargava1 | 3:591086e44bf9 | 64 | } |
rishibhargava1 | 3:591086e44bf9 | 65 | |
rishibhargava1 | 3:591086e44bf9 | 66 | bool Paddle::returnDir(uint8_t ballX, uint8_t size){ |
Mpmart08 | 4:7da18e3c590b | 67 | if ((ballX+size/2) > (x+length/2)){ |
rishibhargava1 | 3:591086e44bf9 | 68 | return true; |
rishibhargava1 | 3:591086e44bf9 | 69 | } |
Mpmart08 | 4:7da18e3c590b | 70 | else { |
rishibhargava1 | 3:591086e44bf9 | 71 | return false; |
Mpmart08 | 4:7da18e3c590b | 72 | } |
rishibhargava1 | 3:591086e44bf9 | 73 | } |
rishibhargava1 | 3:591086e44bf9 | 74 | |
rishibhargava1 | 3:591086e44bf9 | 75 | void Paddle::reset(uint8_t initx, uint8_t inity){ |
rishibhargava1 | 3:591086e44bf9 | 76 | x = initx; |
rishibhargava1 | 3:591086e44bf9 | 77 | y = inity; |
rishibhargava1 | 3:591086e44bf9 | 78 | } |