Grid of particles that drops down and gets accellerated with gravity and scaled with a time increment(to choose step resolution)
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user