Что нового

[AION] Определяем угол поворота камеры

Firestarter

Новичок
Сообщения
54
Репутация
0
Знатоки, помогите плз усовершенствовать скрипт угла поворота камеры.
Насколько видно из кода, в данный момент минимальный угол составляет аж 45градусов. из-за этого перемещение по вейпойнтам происходит мягко сказать "коряво".

Код:
$xNew = 0 ;Путь назначения
$yNew = 0 ;Путь назначения

$x = Int(_MemoryRead ($xAddr, $memory, "float")) ;текущее положение персонажа
$y = Int(_MemoryRead ($yAddr, $memory, "float")) ;текущее положение персонажа

$Xraznica = $x - $xNew
$Yraznica = $y - $yNew

If $Xraznica > 0 and $Yraznica = 0 Then $ugol = -90
If $Xraznica < 0 and $Yraznica = 0 Then $ugol = 90
If $Xraznica = 0 and $Yraznica > 0 Then $ugol = 0
If $Xraznica = 0 and $Yraznica < 0 Then $ugol = 179.9
If $Xraznica < 0 and $Yraznica > 0 Then $ugol = 45
If $Xraznica > 0 and $Yraznica < 0 Then $ugol = -135
If $Xraznica > 0 and $Yraznica > 0 Then $ugol = -45
If $Xraznica < 0 and $Yraznica < 0 Then $ugol = 135
_MemoryWrite ($cAddr, $memory, $ugol, "float")


Может кто уже делал движение по вейпойнтам и находил углы между двумя точками, поделитесь кодом плз. Сам школу прогулял.

п.с. тут видно как криво ходит бот) http://www.youtube.com/watch?v=g68grg5F128 смотреть после 5й минуты
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
Re: [Математика] Waypoint в Айон. Определяем угол поворота камеры.

Firestarter
Тебе угол между точками что ли нужно определить?

Код:
$xNew = 0
$yNew = 0

$x = 
$y = 

MsgBox( 64, '', _Angle( $x, $y, $xNew, $yNew ) )

Func _Angle( $x1, $y1, $x2, $y2 )
	Local $pi = 4 * ATan(1)
	Local $difX = $x2 - $x1
	Local $difY = $y2 - $y1
	Local $tmp = Abs( ATan($difY / $difX) )
	; ---
	If $difX < 0 Then $tmp = $pi - $tmp
	If $difY < 0 Then $tmp = $pi + ($pi - $tmp)
	; ---
	$tmp = Round( $tmp / ($pi / 180) )
	If $tmp < 0 Then $tmp = 360 - (Abs($tmp) - 360)
	While $tmp >= 360
		$tmp -= 360
	WEnd
	If $tmp = 360 Then $tmp = 0
	; ---
	Return $tmp
EndFunc
 
Автор
F

Firestarter

Новичок
Сообщения
54
Репутация
0
Re: [Математика] Waypoint в Айон. Определяем угол поворота камеры.

нужно определить угол поворота камеры (он же угол поворота персонажа) по оси х, дабы направить перса к заданной точке. да еще и головняк с этим... значения поворота камеры лежат в пределах не 0-360 а от -179 до 180

если перса повернуть на 0гадусов, то если идти вперед, Y стремится к нолю. Если повернуть перса на -90градусов, то X стремится к нолю
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [Математика] Waypoint в Айон. Определяем угол поворота камеры.

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Математика] Waypoint в Айон. Определяем угол поворота камеры." - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Модератор.









:mad:
 
Автор
F

Firestarter

Новичок
Сообщения
54
Репутация
0
Re: [Математика] Определяем угол поворота камеры в Айон

изменил название темы
 

Dellroc

Осваивающий
Сообщения
151
Репутация
31
Вот тут по моему то что тебе нужно
http://autoit-script.ru/index.php/topic,8014.0.html
или тут
http://autoit-script.ru/index.php/topic,8023.0.html
а ещё в этой теме в конце есть про углы
http://autoit-script.ru/index.php/topic,4334.60.html
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Вот теперь правильное название :smile:
 
Автор
F

Firestarter

Новичок
Сообщения
54
Репутация
0
пробовал те решения подставлять. ничего не получается, перс начинает бегать не верно. да и там в функциях высчитывается для 0-360. голова кругом идет уже вместе со скриптом.
 

Dellroc

Осваивающий
Сообщения
151
Репутация
31
Совсем не вижу проблемы. Добавь в формулу из полученного ответа вычитать 180 градусов, тем самым у тебя будет нужный тебе градус в пределах от -180 до 180.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Dellroc Проблема тут в поведении камеры.

Видимое мною решение: Ты нашел только X ротацию камеры. Если нашел X, сможешь найти и Y ротацию. Читай её и поворачивай мышью так, как тебе удобно.

Если X ротацию ты задаешь методом записи в память (не редко хз почему, ячейки ротации камеры доступны для записи), то пиши и в Y ячейку.

P.S. В области памяти они как правило лежат рядом.
 
Верх