package main import ( "fmt" "time" rl "github.com/gen2brain/raylib-go/raylib" ) const MAXPOINTS = 100 func main() { rl.InitWindow(1200, 800, "raylib [core] example - basic window") defer rl.CloseWindow() rl.SetTargetFPS(60) rl.BeginDrawing() rl.WaitTime(1) rl.ClearBackground(rl.RayWhite) rl.DrawText("Congrats! You created your first window!", 190, 200, 20, rl.LightGray) rl.EndDrawing() var particleWidth float32 = 200 var particleHeight float32 = 200 var particleColumnCount int = 10 var particleRowCount int = MAXPOINTS / particleColumnCount var particleRadius float32 = 10 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 } } } 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)) } rl.EndDrawing() rl.ClearBackground(rl.RayWhite) fmt.Println(particleList) particleSpeed = rl.Vector2Add(particleSpeed, rl.Vector2Scale(gravity, timeIncrement)) j += timeIncrement } }