player 1
Dependencies: 4DGL-uLCD-SE PinDetect SparkfunAnalogJoystick mbed-rtos mbed SDFileSystem
Fork of 4180FinalLab by
paddle.cpp
00001 #include "paddle.h" 00002 00003 Paddle::Paddle(uint8_t initx, uint8_t inity, uint8_t olength, uint8_t owidth){ 00004 x = initx; 00005 y = inity; 00006 length = olength; 00007 width = owidth; 00008 if (y < 100) { 00009 bottom = false; 00010 } 00011 else { 00012 bottom = true; 00013 } 00014 } 00015 00016 void Paddle::setLimits(uint8_t left, uint8_t right){ 00017 leftLim = left; 00018 rightLim = right; 00019 } 00020 00021 void Paddle::setMaxMove(uint8_t amt){ 00022 maxMove = amt; 00023 } 00024 00025 uint8_t Paddle::getX(){ 00026 return x; 00027 } 00028 00029 void Paddle::setX(uint8_t newx){ 00030 x = newx; 00031 } 00032 00033 void Paddle::move(float amt){ 00034 if (x + amt*maxMove + length > rightLim) 00035 x = rightLim - length; 00036 else if (x + amt*maxMove < leftLim) 00037 x = leftLim; 00038 else 00039 x = x + amt*maxMove; 00040 } 00041 00042 bool Paddle::checkHit(uint8_t ballX, uint8_t ballY, uint8_t size){ 00043 if (ballX+size/2 >= x && ballX+size/2 <= x+length){ 00044 if (bottom && (ballY+size >= y-width && ballY <= y-width)){ 00045 return true; 00046 } 00047 else if (!bottom && (ballY+size >= y+width && ballY <= y+width)){ 00048 return true; 00049 } 00050 } 00051 return false; 00052 } 00053 00054 uint8_t Paddle::returnAngle(uint8_t ballX, uint8_t size){ 00055 uint8_t dist = abs((ballX + size/2) - (x + length/2)); 00056 if (dist < 5) 00057 return 0; 00058 else if (dist < 10) 00059 return 1; 00060 else if (dist < 15) 00061 return 2; 00062 else 00063 return 3; 00064 } 00065 00066 bool Paddle::returnDir(uint8_t ballX, uint8_t size){ 00067 if ((ballX+size/2) > (x+length/2)){ 00068 return true; 00069 } 00070 else { 00071 return false; 00072 } 00073 } 00074 00075 void Paddle::reset(uint8_t initx, uint8_t inity){ 00076 x = initx; 00077 y = inity; 00078 }
Generated on Mon Jul 18 2022 23:07:48 by 1.7.2