Regenbogen balls und darkmode
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"image/color"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
@@ -81,10 +82,10 @@ func obstacleReflect(particlePos rl.Vector2, particleSpeed *rl.Vector2, obstacle
|
||||
}
|
||||
}
|
||||
|
||||
func physics(particleList *[MAXPOINTS]rl.Vector2, particleCount int, particleListKey *sync.Mutex, obstacles *([MAXOBSTACLES](*quad)), particleRadius *float32, obstacleCount *int) {
|
||||
func physics(particleList *[MAXPOINTS]rl.Vector2, particleCount int, particleListKey *sync.Mutex, obstacles *([MAXOBSTACLES](*quad)), particleRadius *float32, obstacleCount *int, particleColor *[MAXPOINTS]rl.Color) {
|
||||
var particleSpeed = [MAXPOINTS]rl.Vector2{{0, -300}} //pixel pro Sekunde
|
||||
var timeIncrement float64 = 0.03
|
||||
var gravity rl.Vector2 = rl.Vector2{0, 0 * 300}
|
||||
var gravity rl.Vector2 = rl.Vector2{0, 300}
|
||||
var newParticleList [MAXPOINTS]rl.Vector2
|
||||
var newParticleSpeed [MAXPOINTS]rl.Vector2
|
||||
var particleFriction float32 = 0.65
|
||||
@@ -92,6 +93,7 @@ func physics(particleList *[MAXPOINTS]rl.Vector2, particleCount int, particleLis
|
||||
var masse float32 = 0.1
|
||||
var electrostaticRange float32 = 50 //range wiie weit die kraftwirkung ist
|
||||
var electroStrength float32 = 4000
|
||||
var hue = [MAXPOINTS]float32{}
|
||||
|
||||
for j := float64(0); j < 50; {
|
||||
var startTime time.Time = time.Now()
|
||||
@@ -137,6 +139,9 @@ func physics(particleList *[MAXPOINTS]rl.Vector2, particleCount int, particleLis
|
||||
|
||||
}
|
||||
|
||||
hue[i]++
|
||||
(*particleColor)[i] = rl.ColorFromHSV(hue[i], 1.0, 1.0)
|
||||
|
||||
obstacleReflect(currentPositions[i], &particleSpeed[i], obstacles, particleRadius, obstacleCount)
|
||||
|
||||
newParticleList[i] = rl.Vector2Add(
|
||||
@@ -188,7 +193,8 @@ func main() {
|
||||
var particleRowCount int = 40
|
||||
var particleCount int = particleRowCount * particleColumnCount
|
||||
var particleRadius float32 = 5
|
||||
var particleColor rl.Color = rl.Black
|
||||
var particleColorList [MAXPOINTS]rl.Color
|
||||
particleColor := &particleColorList
|
||||
var particleListKey sync.Mutex
|
||||
var obstacleCount int = 0
|
||||
|
||||
@@ -212,16 +218,16 @@ func main() {
|
||||
obstacles[3] = &ceiling
|
||||
obstacleCount++
|
||||
|
||||
go physics(&particleList, particleCount, &particleListKey, &obstacles, &particleRadius, &obstacleCount)
|
||||
go physics(&particleList, particleCount, &particleListKey, &obstacles, &particleRadius, &obstacleCount, particleColor)
|
||||
|
||||
for !rl.WindowShouldClose() {
|
||||
rl.ClearBackground(rl.RayWhite)
|
||||
rl.ClearBackground(color.RGBA{15, 16, 23, 1})
|
||||
|
||||
particleListKey.Lock()
|
||||
|
||||
rl.BeginDrawing()
|
||||
for i := 0; i < particleCount; i++ {
|
||||
rl.DrawCircleV(particleList[i], particleRadius, particleColor)
|
||||
rl.DrawCircleV(particleList[i], particleRadius, (*particleColor)[i])
|
||||
}
|
||||
|
||||
particleListKey.Unlock()
|
||||
|
||||
Reference in New Issue
Block a user