Two player imu pong

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

Revision:
0:941225f01ccc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ball.cpp	Thu Oct 22 16:50:22 2015 +0000
@@ -0,0 +1,183 @@
+
+#include "ball.h"
+//#include "tempModule.h"
+
+
+
+Ball::Ball(PinName pin)
+{  
+    //tempSensor = new TempModule(pin);
+    setBaseVx(2.0);
+    setBaseVy(2.0);
+    setVySign(1);
+    setVxSign(1);
+    radius = 5;
+    setX(50);
+    setY(21);
+    }
+    
+Ball::Ball(PinName pin, float Vx, float Vy, int rad,int xp, int yp)
+{
+    //tempSensor = new TempModule(pin , Vx, Vy);
+    setBaseVx(Vx);
+    setBaseVy(Vy);
+    setVxSign(1);
+    setVySign(1);
+    radius = rad;
+    setX(xp);
+    setY(yp);
+    
+    
+    }
+    
+// set functions
+void Ball::setX(int xp)
+{
+    x = xp;
+    }
+void Ball::setY(int yp)
+{
+    y = yp;
+    
+    }
+void Ball::setRand(int seed)
+{
+    srand(seed);
+    int random = (rand() % (118 - 2*radius)) + radius; 
+    setX(random);
+    int random2 = (rand() % (127 - 2*radius)) + radius;
+    setY(random2);
+    
+    }
+void Ball::setBaseVx(float Vx)
+{
+    basevx = Vx;
+    //tempSensor->setBaseVx(vxSign*Vx);
+    
+    }
+    
+    
+void Ball::setBaseVy(float Vy)
+{
+    basevy = Vy;
+    //tempSensor->setBaseVy(Vy);
+    
+    }
+    
+void Ball::setVxSign(int s)
+{
+    vxSign = s;
+    }
+    
+void Ball::setVySign(int s)
+{
+    vySign = s;
+    
+    }
+    
+    
+//get functions
+
+int Ball::getVx()
+{
+    return basevx;
+    }
+    
+int Ball::getVy()
+{
+    return basevy;
+    }
+
+int Ball::getFutureX()
+{
+    return vxSign * getVx() + x ;
+    //return vxSign * tempSensor->getVx() + x ;
+    
+    }
+    
+int Ball::getFutureY()
+{
+    return vySign * getVy() + y;
+    //return vySign * tempSensor->getVy() + y;
+    
+    }
+
+int Ball::getRadius()
+{
+    return radius;
+    }
+//Member Functions
+
+void Ball::reverseXDirection()
+{
+    
+    vxSign = - vxSign;
+    
+    }
+void Ball::reverseYDirection()
+{
+    vySign = -vySign;
+    
+    }
+/*    
+void Ball::reset( int x, int y, int vx, int vy, uLCD_4DGL*)
+{
+    
+    setBaseVx(vx);
+    setBaseVy(vy);   
+    uLCD.circle(x,y,radius,WHITE);
+    
+    
+     }
+   */  
+void Ball::update(uLCD_4DGL *uLCD)
+{
+    uLCD->circle(x,y,radius,BLACK);
+    x = (int) getFutureX();
+    y = (int) getFutureY();
+    uLCD->circle(x,y,radius,WHITE);
+    
+    
+    }
+/*
+void Ball::dispTemp(uLCD_4DGL *uLCD)
+{
+    
+    float garbage = tempSensor->getVx(uLCD);
+    
+    }
+    */
+bool Ball::CheckHit()
+{       bool hit = false;
+        /*
+        if ((getFutureX()<=radius+1)) 
+            {
+              reverseXDirection();
+              hit = true;
+            }
+            */
+        if ((getFutureY()<=radius+1) || (getFutureY()>=126-radius)) 
+            {
+                reverseYDirection();
+                hit = true;
+            }
+            return hit;
+    
+    }
+bool Ball::CheckLose()
+{
+        if ((getFutureX()>=126-radius)) 
+            {
+                //vx = 0;
+                //vy = 0;
+                return true;
+            }
+            
+        if ((getFutureX() <= radius))
+            {
+                return true;
+            }
+        else
+            {return false;}
+    }
+