diff --git a/main.go b/main.go index e6b7463..1964894 100644 --- a/main.go +++ b/main.go @@ -105,8 +105,9 @@ func physics(particleList *[MAXPOINTS]rl.Vector2, particleCount int, particleLis // Jede Goroutine arbeitet nur auf Index i → kein Datenkonflikt for l := 0; l < particleCount; l++ { - if rl.CheckCollisionCircles(currentPositions[i], *particleRadius, currentPositions[l], *particleRadius) && !(l == i) { - particleSpeed[i] = rl.Vector2Negate(particleSpeed[i]) + if rl.CheckCollisionCircles(currentPositions[i], *particleRadius, currentPositions[l], *particleRadius) && (l != i) { + var colNormal rl.Vector2 = rl.Vector2Normalize(rl.Vector2Subtract(currentPositions[i], currentPositions[l])) + particleSpeed[i] = rl.Vector2Reflect(particleSpeed[i], colNormal) } }