32 lines
450 B
Go
32 lines
450 B
Go
|
|
package main
|
||
|
|
|
||
|
|
import "math"
|
||
|
|
|
||
|
|
type Projectile struct {
|
||
|
|
Pos Coordinates
|
||
|
|
Velocity float64
|
||
|
|
a float64
|
||
|
|
}
|
||
|
|
|
||
|
|
func NewProjectile(origin Coordinates, angle, velocity float64) *Projectile {
|
||
|
|
return &Projectile{
|
||
|
|
Velocity: velocity,
|
||
|
|
a: angle,
|
||
|
|
Pos: origin,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func (p *Projectile) Update() {
|
||
|
|
|
||
|
|
dx := p.Velocity * math.Cos(p.a)
|
||
|
|
dy := p.Velocity * math.Sin(p.a)
|
||
|
|
|
||
|
|
p.Pos.X += dx
|
||
|
|
p.Pos.Y += dy
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
func (p *Projectile) Draw() {
|
||
|
|
|
||
|
|
}
|