Elements used in the Balls and Things games for the RETRO.
Dependents: RETRO_BallsAndPaddle RETRO_BallAndHoles
Vector.cpp@0:3d0db4e183ee, 2015-02-06 (annotated)
- 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?
User | Revision | Line number | New 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 | } |