Важная информация

User Tag List

Страница 8 из 11 ПерваяПервая ... 4567891011 ПоследняяПоследняя
Показано с 71 по 80 из 106

Тема: Line(x1,y1,x2,y2)

  1. #71

    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    365
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    Т.е. сохранять err никак не полезно (ибо если коорд. изменились то прошлое значение неактуально).
    всё то же самое - но вместо цикла ты определяешь какая координата точно увеличится исходя из вычисления бОльшей дельты - тогда переменную err заводить не надо.

    я так понял это в игре самонаведение какое-то ?

  2. #72

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,822
    Спасибо Благодарностей отдано 
    274
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shurik-ua Посмотреть сообщение
    всё то же самое - но вместо цикла ты определяешь какая координата точно увеличится исходя из вычисления бОльшей дельты - тогда переменную err заводить не надо.
    Вот и не могу сообразить как её вычислять.
    Цитата Сообщение от shurik-ua Посмотреть сообщение
    я так понял это в игре самонаведение какое-то ?
    Да, это для кота (метла ведь должна его гонять)

  3. #73

    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    365
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    Да, это для кота (метла ведь должна его гонять)
    а что за игра ?

  4. #74

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,822
    Спасибо Благодарностей отдано 
    274
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shurik-ua Посмотреть сообщение
    а что за игра ?
    http://zx-pk.ru/showthread.php?t=25304

  5. #75

    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    365
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    тогда алгоритм нужно изменить - всё как я писал только алгоритм вернёт сколько и каких координат нужно увеличить - то есть на пункте 7 делаем выход из цикла и имеем n - это кол-во приращений координаты с большей дельтой, а координата с меньшей дельтой увеличится на 1.

    ---------- Post added at 20:28 ---------- Previous post was at 20:22 ----------

    упд
    для прямых линий будет работать криво - нужно выделять заранее кол-во итераций алгоритма - например 3-4 - и после работы координаты будут изменены по направлению к цели

  6. #76

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,822
    Спасибо Благодарностей отдано 
    274
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shurik-ua Посмотреть сообщение
    для прямых линий будет работать криво - нужно выделять заранее кол-во итераций алгоритма - например 3-4 - и после работы координаты будут изменены по направлению к цели
    Можешь в псевдо-коде накидать?

  7. #76
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #77

    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    365
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а координаты изменяются каждый фрейм ?

  9. #78

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,822
    Спасибо Благодарностей отдано 
    274
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shurik-ua Посмотреть сообщение
    а координаты изменяются каждый фрейм ?
    Необязательно.
    Метла может быть занята подметанием (т.е. другая процедура изменения), может стремится к коту, может ждать пока он приземлится (когда шуганула и кот полетел), может прервать преследование (если кота схватила собака). В общем условий дофига, но когда преследует - то каждый фрейм меняется (пока что так думаю, возможно будет слишком быстро, придётся замедлять, или слишком медленно - придётся менять два раза например.)

  10. #79

    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    365
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    примерно так:
    Код:
    var1 = 4 - некая глобальная переменная которая устанавливается 1 раз в начале игры для отладки - в релизе заменить константой
    var2 = 0 - тут просто глобальная переменная
    call user_input_and_get_cat_coords - опрашиваем кнопки и меняем координаты кота - к примеру каждый фрейм
    call metla_AI
    ret
    
    metla_AI:
      var2=var2+1
      if var2 <> var1 then exit
      var2=0
      dx=x0-x1
      dy=y0-y1
      err=0
      x=0,y=0
    ;дальше опишу для случая если dy больше dx - если меньше то такая же ветка но поменять местами x и y
      for n=1 to var1 ;выделяем 4 итерации для алгоритма брезенхейма
        inc(y)
        err = err+dx
        if err >= dy then
          err=err-dy
          inc(x)
          end if
        next n
      result x0+x,y0+y
    то есть мы даём алгоритму столько итераций - сколько фреймов метла бездействовала.

  11. #80

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,822
    Спасибо Благодарностей отдано 
    274
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shurik-ua Посмотреть сообщение
    то есть мы даём алгоритму столько итераций - сколько фреймов метла бездействовала.
    Если var1 = 4 (или 3, или ещё как) то в общем-то работает.
    Но если var1=1 (т.е нужно сделать один шаг) то лажает.
    Надо придумать что-то другое, брезенхем тут видимо не поможет.
    Как-то вычислить шаг по у и по x для одного передвижения.
    Собственно для случая dx>dy шаг по х равен 1, а у надо как то узнать уменьшать или нет. Не могу только понять как именно, блин, тяжкое это дело математика.

Страница 8 из 11 ПерваяПервая ... 4567891011 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •