Partikel reflektieren vom boden ab
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
)
|
||||
|
||||
const MAXPOINTS = 100000
|
||||
const PI = 3.141592653589793
|
||||
|
||||
type quad struct {
|
||||
lu rl.Vector2
|
||||
@@ -60,7 +61,7 @@ func physics(particleList *[MAXPOINTS]rl.Vector2, particleCount int, particleLis
|
||||
var timeIncrement float64 = 0.01
|
||||
var gravity rl.Vector2 = rl.Vector2{0, 150}
|
||||
|
||||
for j := float64(0); j < 5; {
|
||||
for j := float64(0); j < 50; {
|
||||
var startTime time.Time = time.Now()
|
||||
|
||||
particleListKey.Lock()
|
||||
@@ -68,9 +69,9 @@ func physics(particleList *[MAXPOINTS]rl.Vector2, particleCount int, particleLis
|
||||
for i := 0; i < particleCount; i++ {
|
||||
if rl.CheckCollisionCircleLine(particleList[i], *particleRadius, floor.lu, floor.ru) {
|
||||
var floorVector rl.Vector2 = rl.Vector2Subtract(floor.ru, floor.lu)
|
||||
var normalFloor rl.Vector2 = rl.Vector2Rotate(floorVector, -90)
|
||||
var normalFloor rl.Vector2 = rl.Vector2Normalize(rl.Vector2Rotate(floorVector, -PI/2))
|
||||
//var collisionAngle float32 = 2 * rl.Vector2Angle(rl.Vector2Negate(particleSpeed[i]), normalFloor)
|
||||
particleSpeed[i] = rl.Vector2Reflect(rl.Vector2Negate(particleSpeed[i]), normalFloor)
|
||||
particleSpeed[i] = rl.Vector2Reflect(particleSpeed[i], normalFloor)
|
||||
}
|
||||
particleList[i] =
|
||||
rl.Vector2Add(
|
||||
@@ -124,7 +125,7 @@ func main() {
|
||||
|
||||
spawnParticlesAsGrid(particleWidth, particleHeight, particleColumnCount, particleRowCount, &particleList)
|
||||
|
||||
var floor quad = createRectangle(rl.Vector2{600, 700}, 600, 100, 0.5)
|
||||
var floor quad = createRectangle(rl.Vector2{600, 700}, 1200, 100, 0*PI/8)
|
||||
|
||||
go physics(&particleList, particleCount, &particleListKey, &floor, &particleRadius)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user