From dfb72f712789c879a252e9f79c62842975b1fbad Mon Sep 17 00:00:00 2001 From: any Date: Sun, 10 May 2026 13:37:40 +0200 Subject: [PATCH] =?UTF-8?q?Funktion=20spawnParticleAsGrid()=20ausgelagert.?= =?UTF-8?q?=20Funktion=20spawned=20partikel=20in=20einem=20Grid=20um=20die?= =?UTF-8?q?=20Startposition=20f=C3=BCr=20die=20Simulation=20zu=20setzen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/main.go b/main.go index 38db1ce..ee4c56b 100644 --- a/main.go +++ b/main.go @@ -1,7 +1,6 @@ package main import ( - "fmt" "time" rl "github.com/gen2brain/raylib-go/raylib" @@ -9,6 +8,17 @@ import ( const MAXPOINTS = 100 +func spawnParticlesAsGrid(particleWidth float32, particleHeight float32, particleColumnCount int, particleRowCount int, particleList *[MAXPOINTS]rl.Vector2) { + var particleLeftCornerPos rl.Vector2 = rl.Vector2{500, 300} + + for y := 0; y < (particleColumnCount); y++ { + for x := 0; x < particleRowCount; x++ { + newParticle := rl.NewVector2(particleWidth*(float32(x)/float32(particleRowCount))+particleLeftCornerPos.X, particleHeight*(float32(y)/float32(particleColumnCount))+particleLeftCornerPos.Y) + particleList[y*particleRowCount+x] = newParticle + } + } +} + func main() { rl.InitWindow(1200, 800, "raylib [core] example - basic window") defer rl.CloseWindow() @@ -25,37 +35,34 @@ func main() { var particleWidth float32 = 200 var particleHeight float32 = 200 var particleColumnCount int = 10 - var particleRowCount int = MAXPOINTS / particleColumnCount - var particleRadius float32 = 10 + var particleRowCount int = 10 + var particleRadius float32 = 5 var particleColor rl.Color = rl.Black - var particleLeftCornerPos rl.Vector2 = rl.Vector2{500, 300} 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.1 var particleList = [MAXPOINTS]rl.Vector2{} - for y := 0; y < (particleColumnCount); y++ { - for x := 0; x < particleRowCount; x++ { - if (y == particleColumnCount) && (x >= MAXPOINTS%particleColumnCount) { - fmt.Println(y, x) - } else { - newParticle := rl.NewVector2(particleWidth*(float32(x)/float32(particleRowCount))+particleLeftCornerPos.X, particleHeight*(float32(y)/float32(particleColumnCount))+particleLeftCornerPos.Y) - particleList[y*particleRowCount+x] = newParticle - } - } - } + spawnParticlesAsGrid(particleWidth, particleHeight, particleColumnCount, particleRowCount, &particleList) + for j := float32(0); j < 20; { rl.BeginDrawing() time.Sleep(time.Duration(timeIncrement*100) * time.Millisecond) for i := 0; i < MAXPOINTS; i++ { rl.DrawCircleV(particleList[i], particleRadius, particleColor) - particleList[i] = rl.Vector2Add(particleList[i], rl.Vector2Scale(particleSpeed, timeIncrement)) + particleList[i] = + rl.Vector2Add( + particleList[i], + rl.Vector2Scale(particleSpeed, timeIncrement)) } rl.EndDrawing() rl.ClearBackground(rl.RayWhite) - fmt.Println(particleList) - particleSpeed = rl.Vector2Add(particleSpeed, rl.Vector2Scale(gravity, timeIncrement)) + //fmt.Println(particleList) + particleSpeed = + rl.Vector2Add( + particleSpeed, + rl.Vector2Scale(gravity, timeIncrement)) j += timeIncrement }