Author Topic: Как определить направление?  (Read 2958 times)

0 Members and 3 Guests are viewing this topic.

Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Как определить направление?
« on: May 26, 2022, 01:14:24 AM »
Помогите определить угол, направления камеры.





Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Как определить направление?
« Reply #1 on: May 26, 2022, 02:57:46 PM »
jpeg

Фон всегда такой? Размер и размер сектора тоже постоянный? Насколько чистые и неизменяемые цвета в секторе?
Тогда в цикле проверяешь цвета по окружности.
Где встретил смену с фона на берюзовый значит начало и азимут = найденный угол+половина сектора
Если встретили смену фона с нужного на фон = найденный угол-половина сектора



Типа такого
Code: (clickermann) [Select]
$radius = 30           // радиус
$centr_X = 960      // центр X
$centr_Y = 563      // центр Y
$color_back = 12566145 // цвет фона
$step_angle = 2        // шаг угла проверки (градус) точность/ускорение

GETSCREEN

$color_old = -1000
FOR($a=0, $a < 360, $step_angle)
    $x = INT($radius * COS($a-90) + $centr_X)
    $y = INT($radius * SIN($a-90) + $centr_Y)
   
    $color = pxl($x,$y)
   
    //MOVE($x,$y)
    //WAITMS(10)
   
    IF(($color_old != -1000) & ($color != $color_old))
        IF($color_old == $color_back)
            $azimuth = $a + 45
            IF($azimuth > 360)
                $azimuth = $azimuth - 360
            END_IF
        ELSE
            $azimuth = $a - 45
            IF($azimuth < 0)
                $azimuth = $azimuth + 360
            END_IF
        END_IF
        $a = 1000
    END_IF
    $color_old = $color
END_CYC

LOGWRITE("Азимут: ", $azimuth)

HALT
« Last Edit: May 30, 2022, 08:45:02 AM by Vint »


Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Re: Как определить направление?
« Reply #2 on: May 26, 2022, 06:49:53 PM »
Фон всегда такой? Размер и размер сектора тоже постоянный? Насколько чистые и неизменяемые цвета в секторе?
Тогда в цикле проверяешь цвета по окружности.
Где встретил смену с фона на берюзовый значит начало и азимут = найденный угол+половина сектора
Если встретили смену фона с нужного на фон = найденный угол-половина сектора
Фон скорее всего будет черно белым, такая же чистая без мусора, просто угол камеры будет белым на черном фоне.
Логику скрипта понял, вернее ты доходчиво объяснил)
Спасибо за ответ конешно, но не мог бы еще помочь прикрутить управление? что бы была возможность, выставить нужный угол, разворот осуществляется правой мышкой, нажать потянуть в сторону. Я бы сам попробовал но я точно знаю что не смогу сделать, я вот смотрю и даже не понимаю как повернуть на сколько пикселей. Вот с бегом разобрался собрал формулу, которая рассчитывает время удерживания кнопки, что бы персонаж дошел с точки "а" в "б"  практически с 98% точностью (просто факторы типа лагов не дают 100% результат), я понимаю что это не сложно и другому это раз плюнуть, но блин я рад что у меня получилось)

Опишу что мне нужно, повернуть персонажа, на нужный мне угол, ну типа идем прямо, дошли до точки где нужно повернуть, и развернуть камеру, на нужный угол, это будет мего помощь если поможешь. Спасибо за все лучший форум, и лучшие форумчане, жаль что активность уже не та как раньше) 

Иван_Васильевич

  • Освоившийся
  • **
  • Posts: 72
    • View Profile
Re: Как определить направление?
« Reply #3 on: May 26, 2022, 07:59:34 PM »
жаль что активность уже не та как раньше)
Вот это поворот! Сам-же, методично обливал беспричинными оскорблениями, тех кто больше всех помогал на форуме, а сейчас  жалеет, что активность не та! ;D

Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Re: Как определить направление?
« Reply #4 on: May 26, 2022, 10:18:27 PM »
жаль что активность уже не та как раньше)
Вот это поворот! Сам-же, методично обливал беспричинными оскорблениями, тех кто больше всех помогал на форуме, а сейчас  жалеет, что активность не та! ;D
вы что то напутали уважаемый.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Как определить направление?
« Reply #5 on: May 27, 2022, 09:57:45 AM »
Спасибо за ответ конешно, но не мог бы еще помочь прикрутить управление? что бы была возможность, выставить нужный угол, разворот осуществляется правой мышкой, нажать потянуть в сторону.
Это нужно делать имея доступ к игре. На пальцах не получится.
Чем поворот отличается от сделанного бега? Так же методом подбора - нашёл азимут, определил на какой угол нужно повернуть и куда и подбираешь значение для мыши. Скорее всего там MOVE не работает может нужно использовать MOVER.


Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Re: Как определить направление?
« Reply #6 on: May 28, 2022, 03:04:32 PM »
Не получается ничего, азимут почему то всегда ноль(

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Как определить направление?
« Reply #7 on: May 30, 2022, 08:48:56 AM »
Не получается ничего, азимут почему то всегда ноль(
Исправил выше.
Забыл дописать одну строку
Code: (clickermann) [Select]
$color_old = $color