From 22ca47cfd724f4f2e9e03be29243d8bab9ec74f0 Mon Sep 17 00:00:00 2001 From: any Date: Sun, 10 May 2026 15:21:57 +0200 Subject: [PATCH] habe versucht parallel physics und rendering zu machen. lustiger bug wo alles verschmiert und flackert BROKEN --- main.go | 57 ++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/main.go b/main.go index 414c6f4..6b83ec3 100644 --- a/main.go +++ b/main.go @@ -19,11 +19,40 @@ func spawnParticlesAsGrid(particleWidth float32, particleHeight float32, particl } } +func physics(particleList *[MAXPOINTS]rl.Vector2, particleCount int) { + var particleSpeed rl.Vector2 = rl.Vector2{0, -300} //pixel pro Sekunde + var timeIncrement float32 = 0.001 + var gravity rl.Vector2 = rl.Vector2{0, 150} + + for j := float32(0); j < 5; { + var startTime time.Time = time.Now() + for i := 0; i < particleCount; i++ { + particleList[i] = + rl.Vector2Add( + particleList[i], + rl.Vector2Scale(particleSpeed, timeIncrement)) + } + + //fmt.Println(particleList) + particleSpeed = + rl.Vector2Add( + particleSpeed, + rl.Vector2Scale(gravity, timeIncrement)) + j += timeIncrement + var endTime time.Time = time.Now() + var elapsed time.Duration = endTime.Sub(startTime) + var waitTime float64 = float64(timeIncrement) - elapsed.Seconds() + println(waitTime) + rl.WaitTime(waitTime) + rl.ClearBackground(rl.RayWhite) + } +} + func main() { rl.InitWindow(1200, 800, "raylib [core] example - basic window") defer rl.CloseWindow() - rl.SetTargetFPS(60) + rl.SetTargetFPS(120) rl.BeginDrawing() rl.WaitTime(1) @@ -39,38 +68,20 @@ func main() { var particleCount int = particleRowCount * particleColumnCount var particleRadius float32 = 5 var particleColor rl.Color = rl.Black - var gravity rl.Vector2 = rl.Vector2{0, 10} + //var stepSize float32 = 10 - var particleSpeed rl.Vector2 = rl.Vector2{0, -100} //pixel pro zeitinkrement - var timeIncrement float32 = 0.01 + var particleList = [MAXPOINTS]rl.Vector2{} spawnParticlesAsGrid(particleWidth, particleHeight, particleColumnCount, particleRowCount, &particleList) + go physics(&particleList, particleCount) - for j := float32(0); j < 20; { + for !rl.WindowShouldClose() { rl.BeginDrawing() - var startTime time.Time = time.Now() for i := 0; i < particleCount; i++ { rl.DrawCircleV(particleList[i], particleRadius, particleColor) - particleList[i] = - rl.Vector2Add( - particleList[i], - rl.Vector2Scale(particleSpeed, timeIncrement)) } rl.EndDrawing() - - //fmt.Println(particleList) - particleSpeed = - rl.Vector2Add( - particleSpeed, - rl.Vector2Scale(gravity, timeIncrement)) - j += timeIncrement - var endTime time.Time = time.Now() - var elapsed time.Duration = endTime.Sub(startTime) - var waitTime float64 = float64(timeIncrement) - elapsed.Seconds() - println(waitTime) - rl.WaitTime(waitTime) - rl.ClearBackground(rl.RayWhite) } }