Как использовать формулу параболы в AS3 для стрельбы стрелой, которая всегда будет перехватывать заданную точку

Первое замечание: математически я совсем не так хорош.

Некоторое время назад я играл в игру на iPhone, где вы нажимаете точку, и из вашего замка вылетает стрела, которая всегда будет пересекать точку, которую вы нажали. Я хотел сделать похожую игру, думая, что это будет легко и быстро; затем я столкнулся с осознанием того, что математика для этого на самом деле выходит за рамки моего уровня навыков.

Я предполагаю, что они используют формулу параболы или что-то такое, что определяет скорость и угол, необходимые, когда стрелка запускается для стрелки

Я лишь смутно помню, как работают параболы со школы, и у меня нет шансов вычислить какие-либо формулы.

Любая математическая помощь или идеи, которые могут быть проще реализовать, были бы замечательными.

Я хочу, чтобы в моем замке была такая функция:

package
{
    import avian.framework.objects.AvElement;

    public class Castle extends AvElement
    {
        /**
         * Fires an arrow from this
         * @param ix The x intersection point
         * @param iy The y intersection point
         */
        public function fire(ix:Number, iy:Number):void
        {
            var ar:Arrow = new Arrow();

            ar.x = x;
            ar.y = y;

            // define angle and velocity based on ix, iy
            // ar.fireAngle = ??
            // ar.fireVelocity = ??

            parent.addChild(ar);
        }
    }
}

Обновите в соответствии с вопросами в комментариях:

К стрелке не будут применяться силы, такие как ветер, трение и т. Д. Arrow path

Чтобы быть максимально ясным:

  1. Стрелка всегда начинает свой путь с фиксированной точки (скажем: 40, 120).
  2. Стрелка всегда должна пересекать заданную координату.
  3. Реалистичный как возможный путь это то, чего я хотел бы достичь (очевидно, я могу просто пустить стрелу прямо, чтобы перехватить любую точку, но цель состоит в том, чтобы стрелка сначала поднималась, а затем опускалась; проходя через желаемую координату самое большее

Примечание: Чтобы избежать проблемы бесконечности возможных парабол - скорость стрелки может быть фиксированной - просто посмотрите на определение угла, под которым стрела может уйти.

5
задан Marty 11 May 2011 в 08:06
поделиться