Alvaro Cassinelli
/
skinGames_forktest
just a test
Fork of scoreLight_Advanced by
classSpring.cpp@48:7633d8e7b0d3, 2014-12-02 (annotated)
- Committer:
- mbedalvaro
- Date:
- Tue Dec 02 04:28:42 2014 +0000
- Revision:
- 48:7633d8e7b0d3
- Parent:
- 30:d8af03f01cd4
this is the working version of the skin games sowtware (aka, scorelight but with pre-determined "games")
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbedalvaro | 30:d8af03f01cd4 | 1 | #include "classSpring.h" |
mbedalvaro | 30:d8af03f01cd4 | 2 | #include "myVectorClass.h" |
mbedalvaro | 30:d8af03f01cd4 | 3 | |
mbedalvaro | 30:d8af03f01cd4 | 4 | //--------------------------------------------------------------------- |
mbedalvaro | 30:d8af03f01cd4 | 5 | spring::spring(){ |
mbedalvaro | 30:d8af03f01cd4 | 6 | massA = NULL; |
mbedalvaro | 30:d8af03f01cd4 | 7 | massB = NULL; |
mbedalvaro | 30:d8af03f01cd4 | 8 | } |
mbedalvaro | 30:d8af03f01cd4 | 9 | |
mbedalvaro | 30:d8af03f01cd4 | 10 | //--------------------------------------------------------------------- |
mbedalvaro | 30:d8af03f01cd4 | 11 | void spring::update(){ |
mbedalvaro | 30:d8af03f01cd4 | 12 | if ((massA == NULL) || (massB == NULL)){ |
mbedalvaro | 30:d8af03f01cd4 | 13 | return; |
mbedalvaro | 30:d8af03f01cd4 | 14 | } |
mbedalvaro | 30:d8af03f01cd4 | 15 | |
mbedalvaro | 30:d8af03f01cd4 | 16 | vector2Df pta = massA->pos; |
mbedalvaro | 30:d8af03f01cd4 | 17 | vector2Df ptb = massB->pos; |
mbedalvaro | 30:d8af03f01cd4 | 18 | |
mbedalvaro | 30:d8af03f01cd4 | 19 | float theirDistance = (pta - ptb).length(); |
mbedalvaro | 30:d8af03f01cd4 | 20 | float springForce = (springiness * (distance - theirDistance)); |
mbedalvaro | 30:d8af03f01cd4 | 21 | vector2Df frcToAdd = (pta-ptb).normalize() * springForce; |
mbedalvaro | 30:d8af03f01cd4 | 22 | |
mbedalvaro | 30:d8af03f01cd4 | 23 | massA->addForce(frcToAdd); |
mbedalvaro | 30:d8af03f01cd4 | 24 | massB->addForce(-frcToAdd); |
mbedalvaro | 30:d8af03f01cd4 | 25 | //massA->totalForce.x+=frcToAdd.x;massA->totalForce.y+=frcToAdd.y; |
mbedalvaro | 30:d8af03f01cd4 | 26 | //massB->totalForce.x-=frcToAdd.x;massB->totalForce.y-=frcToAdd.y; |
mbedalvaro | 30:d8af03f01cd4 | 27 | } |
mbedalvaro | 30:d8af03f01cd4 | 28 | |
mbedalvaro | 30:d8af03f01cd4 | 29 | void spring::assymetricUpdate(){ // only second mass suffers a force |
mbedalvaro | 30:d8af03f01cd4 | 30 | if ((massA == NULL) || (massB == NULL)){ |
mbedalvaro | 30:d8af03f01cd4 | 31 | return; |
mbedalvaro | 30:d8af03f01cd4 | 32 | } |
mbedalvaro | 30:d8af03f01cd4 | 33 | |
mbedalvaro | 30:d8af03f01cd4 | 34 | vector2Df pta = massA->pos; |
mbedalvaro | 30:d8af03f01cd4 | 35 | vector2Df ptb = massB->pos; |
mbedalvaro | 30:d8af03f01cd4 | 36 | |
mbedalvaro | 30:d8af03f01cd4 | 37 | float theirDistance = (pta - ptb).length(); |
mbedalvaro | 30:d8af03f01cd4 | 38 | float springForce = (springiness * (distance - theirDistance)); |
mbedalvaro | 30:d8af03f01cd4 | 39 | vector2Df frcToAdd = (pta-ptb).normalize() * springForce; |
mbedalvaro | 30:d8af03f01cd4 | 40 | |
mbedalvaro | 30:d8af03f01cd4 | 41 | //massA->addForce(frcToAdd); |
mbedalvaro | 30:d8af03f01cd4 | 42 | massB->addForce(-frcToAdd); |
mbedalvaro | 30:d8af03f01cd4 | 43 | //massA->totalForce.x+=frcToAdd.x;massA->totalForce.y+=frcToAdd.y; |
mbedalvaro | 30:d8af03f01cd4 | 44 | //massB->totalForce.x-=frcToAdd.x;massB->totalForce.y-=frcToAdd.y; |
mbedalvaro | 30:d8af03f01cd4 | 45 | } |