Конференция "Игры" » Движение точки
 
  • KilkennyCat © (08.01.09 00:54) [20]

    > Подумаешь... стёрлась пара скобой. Беда какая. :)

    Эти скопки можно поставить двумя вариантами с разным результатом
    Может, тебе тогда стоит не озадачивать других своими вопросами? Подумаешь... беда какая.
  • Дуб © (08.01.09 07:52) [21]
    Проще не диф уравнением, а сразу выводить в координатах окружности вычисляяя нужную дугу. Тогда никаких прмахов не будет.
  • Б (08.01.09 11:24) [22]
    > Эти скопки можно поставить двумя вариантами с разным результатом
    И кто же, таким образом, сделает? :) .

    > Может, тебе тогда стоит не озадачивать других своими вопросами?  
    Не надо путать вопрос от опечатки. Тем более там стоит смайл.

    2 Дуб
    Можно поподробней?
  • tButton © (08.01.09 11:35) [23]
    не удержался и не дочитал примерно половину
    но если есть исходные координаты и конечные координаты
    то на кой черт нужен угол?
    разве нельзя обойтись линейной интерполяцией?
  • Дуб © (08.01.09 12:26) [24]
    > Можно поподробней?

    У тебя движение по окружности(при угле не краном пипополам). Ну и надо ставить точку в нужное место окружности.
  • Дуб © (08.01.09 12:31) [25]

    > Дуб ©   (08.01.09 12:26) [24]

    Тьфу ты. Не по окружности - по прямой. Вот и надо по этой прямой двигаться. Не дифференцировано на каждом шаге, а в общем.
  • tButton © (08.01.09 12:37) [26]
    есть мысль... при определенном стечении обстоятельств
     X:= X + Cos(DegToRad(Angle)) * Speed);
     Y:= Y + Sin(DegToRad(Angle)) * Speed);
    окажется дальше по азимуту чем конечная точка...
    и условие
    If (Panel1.Left = GotoPoint.X) and (Panel1.Top = GotoPoint.Y) then EXIT
    не выполнится никогда...
    хотя, конечно, это только при speed > 0.5
    но нам об этом ничего неизвестно...
  • Б (08.01.09 14:48) [27]
    > то на кой черт нужен угол? разве нельзя обойтись линейной > интерполяцией?

    В данном случае конечно можно, когда дана конечная точка.  
    А если её нет?
    Представим себе игрока. Движение осуществляется по этой формуле. Теперь, нам нужно просто изменить угол и всё. Спрайт будет двигаться всегда туда, куда смотрит. (Нужно незабывать его вращать на заданный угол, естественно).

    > не выполнится никогда...

    Да, условие не всегда выполнится, если скорость будет слишком большая.
    Помотому что, точка будет совершать скачкообразные движения и может просто немного перепрыгнуть конечную точку.
  • Дуб © (09.01.09 05:49) [28]

    > Движение осуществляется по этой формуле.

    Надо значит не по этой. А всегда иметь в памяти предполагаемую точку попадания (реальную или взятую какм ожно дальше), которую вычисляем исходя из начальной точки и угла. Тогда никуда мы не съедем и попадем куда надо. Всегда.

    > Помотому что, точка будет совершать скачкообразные движения
    > и может просто немного перепрыгнуть конечную точку.

    Если все так плохо, то можно строить проекции на отрезок перемещения. Если пересекла - было попадание.
  • Б (12.01.09 11:27) [29]
    Всё. Тема Закрыта. Спасибо.
  • Б (20.01.09 19:45) [30]
 
Конференция "Игры" » Движение точки
Есть новые Нет новых   [134430   +2][b:0][p:0]