From: Patrik Gornicz Date: Sun, 7 Dec 2008 15:51:55 +0000 (-0500) Subject: ball collisions now optimized X-Git-Tag: v0.08~1 X-Git-Url: http://gitweb.pgornicz.com/gitweb.cgi?p=physics.git;a=commitdiff_plain;h=719d202f8ac20943df204e4c2bfa6ab491bd1182 ball collisions now optimized --- diff --git a/src/collisionManager.cpp b/src/collisionManager.cpp index df83319..9db130e 100644 --- a/src/collisionManager.cpp +++ b/src/collisionManager.cpp @@ -42,6 +42,8 @@ bool getInfo(Ball* b1, Ball* b2, CollisionInfo* cInfo); const int xDivisions = 20; const int yDivisions = 16; +const int screenX = 800; +const int screenY = 600; setPhys divisions[xDivisions][yDivisions]; @@ -103,15 +105,15 @@ void placeEntity(PhysicsEntity* p) const float& yb = b->positionRaw().y; const float& rad = b->radius; - for( int x = (int)(xb - rad); - x < (int)(xb + rad); + for( int x = static_cast( (xb - rad) / (screenX / xDivisions) ); + x <= static_cast( (xb + rad) / (screenX / xDivisions) ); x++ ) { if(x < 0 || xDivisions <= x) break; - for( int y = (int)(yb - rad); - y < (int)(yb + rad); + for( int y = static_cast( (yb - rad) / (screenY / yDivisions) ); + y <= static_cast( (yb + rad) / (screenY / yDivisions) ); y++ ) { if(y < 0 || yDivisions <= y)