Я думаю, что вы неправильно задаете скорость своей пули в следующей строке.
velocity = CGPointMake(1, spread);
Если spread
указывает угол, вы, вероятно, должны передать синус и косинус этого угла как x- и y-компоненты вашего CGPoint
следующим образом.
velocity = CGPointMake(cos(spread), sin(spread));
Возможно, вам придется немного изменить это в зависимости от того, выражен ли ваш угол в радианах или градусах.