diff --git a/main.go b/main.go index 3f8d594..38db1ce 100644 --- a/main.go +++ b/main.go @@ -1,19 +1,62 @@ package main -import rl "github.com/gen2brain/raylib-go/raylib" +import ( + "fmt" + "time" + + rl "github.com/gen2brain/raylib-go/raylib" +) + +const MAXPOINTS = 100 func main() { - rl.InitWindow(800, 450, "raylib [core] example - basic window") + rl.InitWindow(1200, 800, "raylib [core] example - basic window") defer rl.CloseWindow() rl.SetTargetFPS(60) - for !rl.WindowShouldClose() { - rl.BeginDrawing() + rl.BeginDrawing() + rl.WaitTime(1) + rl.ClearBackground(rl.RayWhite) + rl.DrawText("Congrats! You created your first window!", 190, 200, 20, rl.LightGray) - rl.ClearBackground(rl.RayWhite) - rl.DrawText("Congrats! You created your first window!", 190, 200, 20, rl.LightGray) + rl.EndDrawing() - 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 + } + }