just a test

Dependencies:   mbed

Fork of scoreLight_Advanced by Alvaro Cassinelli

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?

UserRevisionLine numberNew 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 }