mirror of
https://github.com/maaslalani/confetty.git
synced 2024-11-15 04:06:43 +00:00
I dont know if pointers help here but now there are pointers
This commit is contained in:
parent
ec2c5d6128
commit
d89ba24246
@ -34,8 +34,8 @@ type model struct {
|
|||||||
system *simulation.System
|
system *simulation.System
|
||||||
}
|
}
|
||||||
|
|
||||||
func Spawn(width, height int) []simulation.Particle {
|
func Spawn(width, height int) []*simulation.Particle {
|
||||||
particles := []simulation.Particle{}
|
particles := []*simulation.Particle{}
|
||||||
for i := 0; i < numParticles; i++ {
|
for i := 0; i < numParticles; i++ {
|
||||||
x := float64(width / 2)
|
x := float64(width / 2)
|
||||||
y := float64(0)
|
y := float64(0)
|
||||||
@ -52,7 +52,7 @@ func Spawn(width, height int) []simulation.Particle {
|
|||||||
Render(array.Sample(characters)),
|
Render(array.Sample(characters)),
|
||||||
}
|
}
|
||||||
|
|
||||||
particles = append(particles, p)
|
particles = append(particles, &p)
|
||||||
}
|
}
|
||||||
return particles
|
return particles
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ type model struct {
|
|||||||
system *simulation.System
|
system *simulation.System
|
||||||
}
|
}
|
||||||
|
|
||||||
func SpawnShoot(width, height int) simulation.Particle {
|
func SpawnShoot(width, height int) *simulation.Particle {
|
||||||
color := lipgloss.Color(array.Sample(colors))
|
color := lipgloss.Color(array.Sample(colors))
|
||||||
v := float64(rand.Intn(15) + 15.0)
|
v := float64(rand.Intn(15) + 15.0)
|
||||||
|
|
||||||
@ -54,14 +54,14 @@ func SpawnShoot(width, height int) simulation.Particle {
|
|||||||
Shooting: true,
|
Shooting: true,
|
||||||
ExplosionCall: SpawnExplosion,
|
ExplosionCall: SpawnExplosion,
|
||||||
}
|
}
|
||||||
return p
|
return &p
|
||||||
}
|
}
|
||||||
|
|
||||||
func SpawnExplosion(x, y float64, width, height int) []simulation.Particle {
|
func SpawnExplosion(x, y float64, width, height int) []*simulation.Particle {
|
||||||
color := lipgloss.Color(array.Sample(colors))
|
color := lipgloss.Color(array.Sample(colors))
|
||||||
v := float64(rand.Intn(10) + 20.0)
|
v := float64(rand.Intn(10) + 20.0)
|
||||||
|
|
||||||
particles := []simulation.Particle{}
|
particles := []*simulation.Particle{}
|
||||||
|
|
||||||
for i := 0; i < numParticles; i++ {
|
for i := 0; i < numParticles; i++ {
|
||||||
p := simulation.Particle{
|
p := simulation.Particle{
|
||||||
@ -74,14 +74,14 @@ func SpawnExplosion(x, y float64, width, height int) []simulation.Particle {
|
|||||||
Char: lipgloss.NewStyle().Foreground(color).Render(array.Sample(characters)),
|
Char: lipgloss.NewStyle().Foreground(color).Render(array.Sample(characters)),
|
||||||
Shooting: false,
|
Shooting: false,
|
||||||
}
|
}
|
||||||
particles = append(particles, p)
|
particles = append(particles, &p)
|
||||||
}
|
}
|
||||||
return particles
|
return particles
|
||||||
}
|
}
|
||||||
|
|
||||||
func InitialModelWithSize(width, height int) model {
|
func InitialModelWithSize(width, height int) model {
|
||||||
return model{system: &simulation.System{
|
return model{system: &simulation.System{
|
||||||
Particles: []simulation.Particle{SpawnShoot(width, height)},
|
Particles: []*simulation.Particle{SpawnShoot(width, height)},
|
||||||
Frame: simulation.Frame{
|
Frame: simulation.Frame{
|
||||||
Width: width,
|
Width: width,
|
||||||
Height: height,
|
Height: height,
|
||||||
|
@ -8,7 +8,7 @@ import (
|
|||||||
|
|
||||||
type System struct {
|
type System struct {
|
||||||
Frame Frame
|
Frame Frame
|
||||||
Particles []Particle
|
Particles []*Particle
|
||||||
}
|
}
|
||||||
|
|
||||||
type Particle struct {
|
type Particle struct {
|
||||||
@ -17,7 +17,7 @@ type Particle struct {
|
|||||||
Physics *Projectile
|
Physics *Projectile
|
||||||
Hidden bool
|
Hidden bool
|
||||||
Shooting bool
|
Shooting bool
|
||||||
ExplosionCall func(x, y float64, width, height int) []Particle
|
ExplosionCall func(x, y float64, width, height int) []*Particle
|
||||||
}
|
}
|
||||||
|
|
||||||
type Frame struct {
|
type Frame struct {
|
||||||
@ -29,7 +29,8 @@ func FPS(n int) float64 {
|
|||||||
return (time.Second / time.Duration(n)).Seconds()
|
return (time.Second / time.Duration(n)).Seconds()
|
||||||
}
|
}
|
||||||
|
|
||||||
func RemoveParticleFromArray(s []Particle, i int) []Particle {
|
func RemoveParticleFromArray(s []*Particle, i int) []*Particle {
|
||||||
|
s[i] = nil
|
||||||
s[i] = s[len(s)-1]
|
s[i] = s[len(s)-1]
|
||||||
return s[:len(s)-1]
|
return s[:len(s)-1]
|
||||||
}
|
}
|
||||||
@ -56,7 +57,7 @@ func (s *System) Update() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *System) Visible(p Particle) bool {
|
func (s *System) Visible(p *Particle) bool {
|
||||||
y := int(p.Physics.Position.Y)
|
y := int(p.Physics.Position.Y)
|
||||||
x := int(p.Physics.Position.X)
|
x := int(p.Physics.Position.X)
|
||||||
return !p.Hidden && y >= 0 && y < s.Frame.Height-1 && x >= 0 && x < s.Frame.Width-1
|
return !p.Hidden && y >= 0 && y < s.Frame.Height-1 && x >= 0 && x < s.Frame.Width-1
|
||||||
|
Loading…
Reference in New Issue
Block a user