func (p *Physics) MoveRocket(rocket *state.Rocket, duration time.Duration) { t := rocket.Target if t == nil { rocket.ShouldRemove = true return } dx := t.X - rocket.X dy := t.Y - rocket.Y rocket.Angle = math.Atan2(dy, dx) * RadToDeg x, y := p.move2d(rocket.X, rocket.Y, rocket.Angle, rocket.Velocity, duration) rocket.X = x rocket.Y = y if collision.Collides(rocket, t) { rocket.ShouldRemove = true p.damageVehicle(t, p.BulletDamage*20) } }