X-Git-Url: http://gitweb.pgornicz.com/gitweb.cgi?a=blobdiff_plain;f=src%2FentityCreator.cpp;h=078e40fae34bca9f1bdaaf9d62bc6cb818a09f57;hb=3980ceb3ab097c9aa79d4a46258b007a300da25b;hp=6ed785dcf9db7ed5bfc942df369995eef7ef4b75;hpb=054d658f7ba8742cc1bc0a2f16d0f7e4a1499516;p=physics.git diff --git a/src/entityCreator.cpp b/src/entityCreator.cpp index 6ed785d..078e40f 100644 --- a/src/entityCreator.cpp +++ b/src/entityCreator.cpp @@ -1,12 +1,79 @@ #include "entityCreator.h" +#include + +#include "entityManager.h" +#include "Entities/Ball.h" +#include "graphics/colors.h" + +/// ***** Private Method Headers ***** +typedef std::queue queBall; +queBall Balls; + +/// ***** Private Variables ***** + +/// ***** Public Methods ***** void creator::init() { + Ball* ball; + + ball = new Ball(Vector2(50, 50), 20, cWhite); + + ball->applyImpulse(Vector2(0.25,0.05)), + Balls.push(ball); + manager::add(ball); + + ball = new Ball(Vector2(100, 50), 20, cBlack); + + ball->applyImpulse(Vector2(-0.15,-0.05)), + Balls.push(ball); + manager::add(ball); + + ball = new Ball(Vector2(150, 50), 20, cGrey); + + ball->applyImpulse(Vector2(0.25,0.15)), + Balls.push(ball); + manager::add(ball); + + ball = new Ball(Vector2(50, 100), 20, cRed); + ball->applyImpulse(Vector2(0.35,-0.15)), + Balls.push(ball); + manager::add(ball); + + ball = new Ball(Vector2(100, 100), 20, cGreen); + + ball->applyImpulse(Vector2(-0.15,0.05)), + Balls.push(ball); + manager::add(ball); + + ball = new Ball(Vector2(150, 100), 20, cBlue); + + ball->applyImpulse(Vector2(0.25,0.15)), + Balls.push(ball); + manager::add(ball); + + ball = new Ball(Vector2(50, 150), 20, cYellow); + + ball->applyImpulse(Vector2(0.25,-0.05)), + Balls.push(ball); + manager::add(ball); + + ball = new Ball(Vector2(100, 150), 20, cMagenta); + + ball->applyImpulse(Vector2(-0.15,-0.05)), + Balls.push(ball); + manager::add(ball); + + ball = new Ball(Vector2(150, 150), 20, cCyan); + + ball->applyImpulse(Vector2(-0.15,0.05)), + Balls.push(ball); + manager::add(ball); } void creator::clean() { - + removeAllBalls(); } void creator::addBall() @@ -19,5 +86,12 @@ void creator::removeBall() } void creator::removeAllBalls() { + while(! Balls.empty() ) + { + Ball* ball = Balls.front(); + Balls.pop(); + manager::remove(ball); + delete ball; + } }