Global.fenestro_kosmo.get_node("ship").target_rot=Quat(Global.fenestro_kosmo.get_node("ship").transform.looking_at(transform.origin,Vector3.UP).basis)#запоминаем в какое положение надо установить корабль, чтобы нос был к цели. Это в кватернионах. ХЗ что это, но именно так вращать правильнее всего.
target_rot=Quat(transform.looking_at(Global.fenestro_itinero.itineroj.front()['transform'].origin,Vector3.UP).basis)#запоминаем в какое положение надо установить корабль, чтобы нос был к цели. Это в кватернионах. ХЗ что это, но именно так вращать правильнее всего.
iftasko['node']['statuso']['objId']==2:#задачу, которая "В работе" ставим первой
# cam.point_of_interest.route.push_back(Transform(Basis.IDENTITY, cam.project_position(get_viewport().get_mouse_position(),z_away)))#Если кнопка нажата, то бросаем луч из камеры на глубину z_away и получаем точку, тут же устанавливаем новый вейпойнт с координатами
s.itineroj.push_front({
'uuid':tasko['node']['uuid'],
'koordinatoX':tasko['node']['finKoordinatoX'],
'koordinatoY':tasko['node']['finKoordinatoY'],
'koordinatoZ':tasko['node']['finKoordinatoZ'],
'pozicio':tasko['node']['pozicio']
})
break;
fortaskoinprojektoj[0]['node']['tasko']['edges']:
iftasko['node']['statuso']['objId']==1:# добавляем остальные задачи
target_rot=Quat(transform.looking_at(Global.fenestro_itinero.itineroj.front()['transform'].origin,Vector3.UP).basis)#запоминаем в какое положение надо установить корабль, чтобы нос был к цели. Это в кватернионах. ХЗ что это, но именно так вращать правильнее всего.
transform.basis=transform.basis.slerp(target_rot,speed_rotation*delta)#потихоньку поворачиваем корабль на цель. Взято у Сканера из урока про зомбей. Quat(transform.basis) - текущий поворот корабля
else:
ifdistance>max_speed*delta/acceleration:#Тут сомнительная формула от фонаря, вычисляющая примерно откуда надо начинать тормозить корабль.
varc=a.slerp(target_rot,speed_rotation*delta)#потихоньку поворачиваем корабль на цель. Взято у Сканера из урока про зомбей. Quat(transform.basis) - текущий поворот корабля
transform.basis=Basis(c)
# transform.basis = transform.basis.slerp(target_rot,speed_rotation*delta) #потихоньку поворачиваем корабль на цель. Взято у Сканера из урока про зомбей. Quat(transform.basis) - текущий поворот корабля
else:#Если это последняя точка, то мы тормозим, и задаём минимальное расстояние, чтобы точнее выставить корабль
transform.basis=transform.basis.slerp(Quat(Global.fenestro_itinero.itineroj.front()['transform'].basis),speed_rotation*delta*1.5)#поворачиваем в дефолтное состояние, чтобы сесть
target_rot=Quat(transform.looking_at(front.origin,Vector3.UP).basis)#запоминаем в какое положение надо установить корабль, чтобы нос был к цели. Это в кватернионах. ХЗ что это, но именно так вращать правильнее всего.