Понедельник, 21 Октября 2019, 07:40

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » плавный поворот при движение
плавный поворот при движение
vsDaTavsДата: Суббота, 17 Сентября 2011, 12:25 | Сообщение # 1
почетный гость
Сейчас нет на сайте
создал поворот объекта к точке, которая определяется нажатием ЛКМ
Суть в том что в зависимости от расположения точки назначения объект поворачивается к нему не моментально, пока его направление не совпадет с вектором направления., и при этом объект движется, потому получается поворот при движение.
исходник
вот код


В принципе код выполняет свою функцию, но не совсем корректно. А именно:

если нажать мышкой сбоку от объекта и недалеко от него(но не слишком близко), то он будет все время кружить, так как не столкнется с курсором.

Нужно внести кое-какие дополнения в код чтобы исключить этот баг


http://farchive.jino.ru/

Сообщение отредактировал vsDaTavs - Суббота, 17 Сентября 2011, 12:35
MyACTДата: Суббота, 17 Сентября 2011, 13:16 | Сообщение # 2
C# CODERS
Сейчас нет на сайте
Щас, я тебе кое что переделаю,если тебе способ понравиться.Жди

Добавлено (17.09.2011, 13:16)
---------------------------------------------
Вот так сойдет?
DOWNLOAD


ПОЖИЗНЕННО ЖИВ
http://youtube.com/myactybatya | twitch.tv/myacty
elis1112Дата: Суббота, 17 Сентября 2011, 15:10 | Сообщение # 3
Igni et ferro
Сейчас нет на сайте
подошло нет? пробовать делать?
vsDaTavsДата: Суббота, 17 Сентября 2011, 15:13 | Сообщение # 4
почетный гость
Сейчас нет на сайте
не подошло, потому что поворот стал резким, весь мой труд перечеркнул

внимание! Я сделал формулу чтобы объект поворачивался к цели плавно, делая вираж. Нужно еще подкорректировать чтобы он не кружил вечно, когда точка назначения слишком близко к нему, но и не вплотную


http://farchive.jino.ru/

Сообщение отредактировал vsDaTavs - Суббота, 17 Сентября 2011, 15:16
Лер_да_РимДата: Суббота, 17 Сентября 2011, 15:15 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
vsDaTavs, у меня была в точности такая же проблема в одной моей стратегии. Как вариант предлагаю разворот на месте, а после движение к точке. А вот как я исправил я уже и не помню.

Насчёт плавного поворота - в FAQ для новичков от ДезСоула есть такой вопрос. Можешь с ним свериться.


Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.

vsDaTavsДата: Суббота, 17 Сентября 2011, 15:16 | Сообщение # 6
почетный гость
Сейчас нет на сайте
Это запросто, ничего трудного. Только меня это не устраивает.
П.С. вариант есть стопудово. что то крутится в уме. только я никак не могу включить мозги с этой пятницы

Quote
FAQ для новичков от ДезСоула
да полезная статейка. только сразу так там и не найдешь, кокопаюсь


http://farchive.jino.ru/

Сообщение отредактировал vsDaTavs - Суббота, 17 Сентября 2011, 15:21
Лер_да_РимДата: Суббота, 17 Сентября 2011, 15:25 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
MyACT, это же совсем не то, что требовалось...

Добавлено (17.09.2011, 15:18)
---------------------------------------------
vsDaTavs, сейчас попробую сам сообразить, покопаюсь в своей игре.

Добавлено (17.09.2011, 15:21)
---------------------------------------------
Интересный факт, у себя я это так и не исправил... Весьма странно...

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

Добавлено (17.09.2011, 15:22)
---------------------------------------------
Таким образом, постепенно сбрасывая скорость, мы понемногу будем уменьшать радиус минимального круга разворота, до тех пор, пока точка не окажется вне этого самого круга...

Добавлено (17.09.2011, 15:25)
---------------------------------------------
Насчёт FAQ, он довольно-таки удобен, разделы для того и сделаны. Вопрос по этой теме идёт как II.2.8. Как сделать плавный поворот турели?. Ну, только он подходит не только к турели, естественно. Кстати, поэтому при нём и проходит твой же баг - турель стационарна.


Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.

vsDaTavsДата: Суббота, 17 Сентября 2011, 15:38 | Сообщение # 8
почетный гость
Сейчас нет на сайте
Если нажать оч близко сбоку к объекто то он поворачивается почти на месте.Так и задумано. Но если сделать по вашему, вероятно это эффект не изменится.
Но проблемы возникнут с градусами. Ведь в формуле проверка на "=" ведь если больше или меньше то будет родолжаться поворот в определенную сторону каждый шаг.
24-4-4-4-4 т е 4 шага он повернется а на 6 шаг градус 0, т е направление более не меняется
24 - 4 - 4 - 4 -3 -2 - 2 что же получится, ноль будет проскочен., и будет в итоге объект вертется то вправо то влево.
я с этим багом сталкивался при построение формулы.

суть в том что объект движется и поворачивается на угол пропорциональный его скорости.
например скорость 3 и поворот 3 или скорость 6 и поворот 3, т к 6 кратно 3

Quote
проходит твой же баг - турель стационарна

не правильно. со стационарной моделью все гораздо проще.
есесно ей не надо замерять расстояние, и вследствие она не зациклится. ее достатчно просто поворачивать в таком то направление., каждый шаг определяя это направление
Так что здесь я с вами не согласен. Турелья я и так могу сделать


http://farchive.jino.ru/

Сообщение отредактировал vsDaTavs - Суббота, 17 Сентября 2011, 15:41
Лер_да_РимДата: Суббота, 17 Сентября 2011, 15:45 | Сообщение # 9
заслуженный участник
Сейчас нет на сайте
vsDaTavs, мм я о турели так и сказал, просто не совсем ясно формулирую. При создании кода из FAQ думали о турелях, которые никуда не движутся. И поэтому использование этого кода вызовет тот же баг.

Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.

vsDaTavsДата: Суббота, 17 Сентября 2011, 16:14 | Сообщение # 10
почетный гость
Сейчас нет на сайте
Если объект будет плавно сбавлять скорость, то он все равно сделает несколько кругов вокруг точки, что не есть нормально.

Я уже сделал что требовалось
. Действительно надо проверять раастояние, но сбавить скорость резко, на минимальную величину, кратную скорости и угла поворота. И ето ессесно единица. С такой скорость объект будет двигаться вперед крайне медленно и позицию не пропустит. И эффект получается.


http://farchive.jino.ru/

Сообщение отредактировал vsDaTavs - Суббота, 17 Сентября 2011, 16:15
MyACTДата: Суббота, 17 Сентября 2011, 16:23 | Сообщение # 11
C# CODERS
Сейчас нет на сайте
А попробуй сделать как я сделал,что при нажатий появляется зелёный квадрат,и при столкновений с ним он уничтожался,а так оставь свое все.

ПОЖИЗНЕННО ЖИВ
http://youtube.com/myactybatya | twitch.tv/myacty
vsDaTavsДата: Суббота, 17 Сентября 2011, 16:44 | Сообщение # 12
почетный гость
Сейчас нет на сайте
а ты мой исходник смотрел? или код который я написал? у меня также.
это само собой. Аж даже смешно.


http://farchive.jino.ru/
Лер_да_РимДата: Суббота, 17 Сентября 2011, 20:41 | Сообщение # 13
заслуженный участник
Сейчас нет на сайте
MyACT, да... видно, что ты делаешь тяп-ляп, не вникнув в код.
vsDaTavs, рад, что помог найти решение. Возможно, я сделаю так же у себя)


Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.

Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » плавный поворот при движение
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2019 Рейтинг