Четверг, 21 Ноября 2024, 23:14

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Вопрос , про медленный поворот объекта.
KrososДата: Четверг, 31 Октября 2013, 23:01 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Самый частый пример такого - это турель.
Вот ее примерный код:

direction=round(direction)
if point_direction(x,y,Player.x,Player.y)!=direction{
if point_direction(x,y,Player.x,Player.y)>direction{direction+=2}else{direction-=2}
}
Вроде нормально , но возникает проблема.=(
Когда , например , поинтдирешен равен 350 , а дирекшен равен 30 , то поворот пойдет по часовой стрелке , а не против часовой , то есть ,нелогично.
Что тут можно сделать?





Мой проект
TaDaDaPamДата: Пятница, 01 Ноября 2013, 06:24 | Сообщение # 2
частый гость
Сейчас нет на сайте
Krosos, + - левее, соответственно - - правее. А у тебя, по ходу все наоборот wink
KrososДата: Пятница, 01 Ноября 2013, 12:06 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Посмотри еще раз , там ,вроде, все правильно у меня./
И не в этом суть вопроса.





Мой проект
SalahAdDinДата: Пятница, 01 Ноября 2013, 16:23 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
if point_direction < 180 {...}
else {...}

Добавлено (01.11.2013, 16:23)
---------------------------------------------
Не, не так.
if 180 < direction - point_direction < 0
{...}
if 180 > direction - point_direction > 359
{...}

Вроде бы в этот раз правильно.


Фотошоп это не сложно. Немного теории, полезной на практике:
Работа с наложением текстур
Рисуем без планшета
LunarPixelДата: Пятница, 01 Ноября 2013, 20:10 | Сообщение # 5
старожил
Сейчас нет на сайте
Цитата SalahAdDin ()
180 < direction - point_direction < 0

это что же за число такое, которое больше 180 и меньше 0? Аналогично со вторым условием. smile

Для этого дела есть старый добрый скрипт:

Код
direction = direction mod 360
if direction <0 direction += 360
if abs(direction-point_direction(x,y,mouse_x,mouse_y))<2
direction = point_direction(x,y,mouse_x,mouse_y)
else
direction = direction + (sign(sin(degtorad(point_direction(x,y,mouse_x,mouse_y)-direction)))*2)

image_angle=direction


KrososДата: Суббота, 02 Ноября 2013, 18:03 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
LunarPixel, Спасибо!




Мой проект
SalahAdDinДата: Четверг, 07 Ноября 2013, 18:35 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
Цитата LunarPixel
это что же за число такое, которое больше 180 и меньше 0? Аналогично со вторым условием

Пытался сидя в перерыве между клиентами вспомнить тригонометрию. Впрочем нечто подобное я с горем пополам прикрутил к этому: gcup.ru/forum/9-21424-1. Даже исходник сохранился smile


Фотошоп это не сложно. Немного теории, полезной на практике:
Работа с наложением текстур
Рисуем без планшета
  • Страница 1 из 1
  • 1
Поиск:

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