Elements used in the Balls and Things games for the RETRO.

Dependents:   RETRO_BallsAndPaddle RETRO_BallAndHoles

Committer:
maxint
Date:
Fri Feb 06 09:51:06 2015 +0000
Revision:
0:3d0db4e183ee
Child:
2:74bc9b16fb88
Put Balls and Things objects into a library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
maxint 0:3d0db4e183ee 1 #include "Vector.h"
maxint 0:3d0db4e183ee 2
maxint 0:3d0db4e183ee 3 Vector::Vector()
maxint 0:3d0db4e183ee 4 { // constructor
maxint 0:3d0db4e183ee 5 this->set((float)0,(float)0);
maxint 0:3d0db4e183ee 6 }
maxint 0:3d0db4e183ee 7
maxint 0:3d0db4e183ee 8 Vector::Vector(float fX, float fY)
maxint 0:3d0db4e183ee 9 {
maxint 0:3d0db4e183ee 10 this->set(fX, fY);
maxint 0:3d0db4e183ee 11 }
maxint 0:3d0db4e183ee 12
maxint 0:3d0db4e183ee 13 void Vector::set(float fX, float fY)
maxint 0:3d0db4e183ee 14 {
maxint 0:3d0db4e183ee 15 x=fX;
maxint 0:3d0db4e183ee 16 y=fY;
maxint 0:3d0db4e183ee 17 }
maxint 0:3d0db4e183ee 18 void Vector::set(int nX, int nY)
maxint 0:3d0db4e183ee 19 {
maxint 0:3d0db4e183ee 20 this->set((float)nX, (float)nY);
maxint 0:3d0db4e183ee 21 }
maxint 0:3d0db4e183ee 22
maxint 0:3d0db4e183ee 23 float Vector::getSize()
maxint 0:3d0db4e183ee 24 { // get the size of the vector
maxint 0:3d0db4e183ee 25 return(sqrt(x*x+y*y));
maxint 0:3d0db4e183ee 26 }
maxint 0:3d0db4e183ee 27
maxint 0:3d0db4e183ee 28 bool Vector::isLeft() { return(x<0); }
maxint 0:3d0db4e183ee 29 bool Vector::isRight() { return(x>0); }
maxint 0:3d0db4e183ee 30 bool Vector::isUp() { return(y<0); }
maxint 0:3d0db4e183ee 31 bool Vector::isDown() { return(y>0); }
maxint 0:3d0db4e183ee 32
maxint 0:3d0db4e183ee 33
maxint 0:3d0db4e183ee 34 void Vector::add(float fAdd)
maxint 0:3d0db4e183ee 35 { // add the size of the vector by adding to its size
maxint 0:3d0db4e183ee 36 float fSize=getSize();
maxint 0:3d0db4e183ee 37 float fSizeNew=fSize+fAdd;
maxint 0:3d0db4e183ee 38 if(fSize!=0)
maxint 0:3d0db4e183ee 39 {
maxint 0:3d0db4e183ee 40 x=x * (fSizeNew/fSize);
maxint 0:3d0db4e183ee 41 y=y * (fSizeNew/fSize);
maxint 0:3d0db4e183ee 42 }
maxint 0:3d0db4e183ee 43 else
maxint 0:3d0db4e183ee 44 { // in case of zero lenght, default to addition in first quadrant.
maxint 0:3d0db4e183ee 45 x=sqrt(0.5 * fAdd * fAdd);
maxint 0:3d0db4e183ee 46 y=x;
maxint 0:3d0db4e183ee 47 }
maxint 0:3d0db4e183ee 48 }
maxint 0:3d0db4e183ee 49
maxint 0:3d0db4e183ee 50 void Vector::add(Vector vAdd)
maxint 0:3d0db4e183ee 51 {
maxint 0:3d0db4e183ee 52 x+=vAdd.x;
maxint 0:3d0db4e183ee 53 y+=vAdd.y;
maxint 0:3d0db4e183ee 54 }
maxint 0:3d0db4e183ee 55
maxint 0:3d0db4e183ee 56 void Vector::multiply(Vector vMult)
maxint 0:3d0db4e183ee 57 { // multiply the vector by means of the other vector
maxint 0:3d0db4e183ee 58 x*=vMult.x;
maxint 0:3d0db4e183ee 59 y*=vMult.y;
maxint 0:3d0db4e183ee 60 }