diff --git a/main.go b/main.go index 2b70e6c..11ede03 100644 --- a/main.go +++ b/main.go @@ -8,6 +8,7 @@ import ( ) const MAXPOINTS = 100000 +const PI = 3.141592653589793 type quad struct { lu rl.Vector2 @@ -60,7 +61,7 @@ func physics(particleList *[MAXPOINTS]rl.Vector2, particleCount int, particleLis var timeIncrement float64 = 0.01 var gravity rl.Vector2 = rl.Vector2{0, 150} - for j := float64(0); j < 5; { + for j := float64(0); j < 50; { var startTime time.Time = time.Now() particleListKey.Lock() @@ -68,9 +69,9 @@ func physics(particleList *[MAXPOINTS]rl.Vector2, particleCount int, particleLis for i := 0; i < particleCount; i++ { if rl.CheckCollisionCircleLine(particleList[i], *particleRadius, floor.lu, floor.ru) { var floorVector rl.Vector2 = rl.Vector2Subtract(floor.ru, floor.lu) - var normalFloor rl.Vector2 = rl.Vector2Rotate(floorVector, -90) + var normalFloor rl.Vector2 = rl.Vector2Normalize(rl.Vector2Rotate(floorVector, -PI/2)) //var collisionAngle float32 = 2 * rl.Vector2Angle(rl.Vector2Negate(particleSpeed[i]), normalFloor) - particleSpeed[i] = rl.Vector2Reflect(rl.Vector2Negate(particleSpeed[i]), normalFloor) + particleSpeed[i] = rl.Vector2Reflect(particleSpeed[i], normalFloor) } particleList[i] = rl.Vector2Add( @@ -124,7 +125,7 @@ func main() { spawnParticlesAsGrid(particleWidth, particleHeight, particleColumnCount, particleRowCount, &particleList) - var floor quad = createRectangle(rl.Vector2{600, 700}, 600, 100, 0.5) + var floor quad = createRectangle(rl.Vector2{600, 700}, 1200, 100, 0*PI/8) go physics(&particleList, particleCount, &particleListKey, &floor, &particleRadius)