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