ну в твоем способе есть сурьезный недочет!
1 - шарик всегда будет взлетать на одинаковую высоту
2 - если цель находится совсем рядом то стрелять навесом на опупенную высоту - не красиво!!!
3 - мне интересно как ты будешь создавать эффект пристрелки (када комп хочет тебя замочить)
Есть хорший вариант -
ЧЕСТНЫЙ !
а считать его можно так:
1 измеряем расстояние до цели, определяем середину.
2 задаемся случайным углом (в зависимости от расстояния например 3 диапазона 0-30, 31-60,61-89)
3 по углу расчитываем Y координату перечения луча ствола пушки с осью Y(как бы смещаем туда будущую вершину перевернутой параболы (ветви вниз))
4 расчитываем параметры параболы y=kx^2, а именно k- коэффициент сжатия
5 производим расчет полета в цикле, до момента когда координата Х снаряда не станет равной координате X цели
6 оцениваем ошибку - исправляем k и взвращаемся к п. 5
на картинке видно что погрешность стрельбы будет сильно зависеть от разности координат Y целей. Что для нас очень даже на руку! Получается что на ровной местности комп попадет в цель с большей вероятностью чем в гористой, когда объекты будут на разной высоте. Кроме того такой алгоритм позволит определять наличие прегад на пути снаряда и в зависимости от их наличия менять режим стрельбы - от прямой наводки до навесного огня.
Короче уже пора домой и нету времени все это делать, а у желающих есть в переди целых 2 выходных!
Успехов!