habe versucht parallel physics und rendering zu machen. lustiger bug wo alles verschmiert und flackert BROKEN

This commit is contained in:
any
2026-05-10 15:21:57 +02:00
parent 00eadccc3f
commit 22ca47cfd7
+34 -23
View File
@@ -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() { func main() {
rl.InitWindow(1200, 800, "raylib [core] example - basic window") rl.InitWindow(1200, 800, "raylib [core] example - basic window")
defer rl.CloseWindow() defer rl.CloseWindow()
rl.SetTargetFPS(60) rl.SetTargetFPS(120)
rl.BeginDrawing() rl.BeginDrawing()
rl.WaitTime(1) rl.WaitTime(1)
@@ -39,38 +68,20 @@ func main() {
var particleCount int = particleRowCount * particleColumnCount var particleCount int = particleRowCount * particleColumnCount
var particleRadius float32 = 5 var particleRadius float32 = 5
var particleColor rl.Color = rl.Black var particleColor rl.Color = rl.Black
var gravity rl.Vector2 = rl.Vector2{0, 10}
//var stepSize float32 = 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{} var particleList = [MAXPOINTS]rl.Vector2{}
spawnParticlesAsGrid(particleWidth, particleHeight, particleColumnCount, particleRowCount, &particleList) spawnParticlesAsGrid(particleWidth, particleHeight, particleColumnCount, particleRowCount, &particleList)
go physics(&particleList, particleCount)
for j := float32(0); j < 20; { for !rl.WindowShouldClose() {
rl.BeginDrawing() rl.BeginDrawing()
var startTime time.Time = time.Now()
for i := 0; i < particleCount; i++ { for i := 0; i < particleCount; i++ {
rl.DrawCircleV(particleList[i], particleRadius, particleColor) rl.DrawCircleV(particleList[i], particleRadius, particleColor)
particleList[i] =
rl.Vector2Add(
particleList[i],
rl.Vector2Scale(particleSpeed, timeIncrement))
} }
rl.EndDrawing() 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)
} }
} }