player 1

Dependencies:   4DGL-uLCD-SE PinDetect SparkfunAnalogJoystick mbed-rtos mbed SDFileSystem

Fork of 4180FinalLab by Rishi Bhargava

Wireless 2 Player Pong game

Committer:
rishibhargava1
Date:
Sun Apr 24 01:23:28 2016 +0000
Revision:
3:591086e44bf9
Child:
4:7da18e3c590b
Directions of the ball velocities are bools

Who changed what in which revision?

UserRevisionLine numberNew 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;
rishibhargava1 3:591086e44bf9 6 length = length;
rishibhargava1 3:591086e44bf9 7 width = width;
rishibhargava1 3:591086e44bf9 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){
rishibhargava1 3:591086e44bf9 44 if (bottom && (ballY+size >= y && ballY <= y+width)){
rishibhargava1 3:591086e44bf9 45 return true;
rishibhargava1 3:591086e44bf9 46 }
rishibhargava1 3:591086e44bf9 47 else if (!bottom && (ballY <= y+width && ballY+size >= y)){
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
rishibhargava1 3:591086e44bf9 54 uint8_t Paddle::returnAngle(uint8_t ballX, uint8_t size){
rishibhargava1 3:591086e44bf9 55 return abs((ballX+size/2 - (x + length/2)));
rishibhargava1 3:591086e44bf9 56 }
rishibhargava1 3:591086e44bf9 57
rishibhargava1 3:591086e44bf9 58 bool Paddle::returnDir(uint8_t ballX, uint8_t size){
rishibhargava1 3:591086e44bf9 59 if (ballX+size/2 > (x+length/2)){
rishibhargava1 3:591086e44bf9 60 return true;
rishibhargava1 3:591086e44bf9 61 }
rishibhargava1 3:591086e44bf9 62 else
rishibhargava1 3:591086e44bf9 63 return false;
rishibhargava1 3:591086e44bf9 64 }
rishibhargava1 3:591086e44bf9 65
rishibhargava1 3:591086e44bf9 66 void Paddle::reset(uint8_t initx, uint8_t inity){
rishibhargava1 3:591086e44bf9 67 x = initx;
rishibhargava1 3:591086e44bf9 68 y = inity;
rishibhargava1 3:591086e44bf9 69 }