PDA

Просмотр полной версии : [Вопрос] Неправильно изменяется положение камеры в режиме слежки (спектатора)



Union
11.10.2020, 13:03
Почему камера смотрит на координаты : "X - 50.7 Y - 50.7 Z - 50.0"?


public OnPlayerRequestClass(playerid, classid)
{
TogglePlayerSpectating(playerid, 1);
SetTimerEx("TEST_TIMER", 1000, false, "d", playerid);
return 1;
}

forward TEST_TIMER(playerid);
public TEST_TIMER(playerid)
{
SetPlayerCameraPos(playerid, 2038.1021, 1544.9769, 10.8203);
SetPlayerCameraLookAt(playerid, 2037.1021, 1543.9769, 10.8203);

new Float:x, Float:y, Float:z;

GetPlayerCameraLookAt(playerid, x,y,z);
printf("X - %.1f Y - %.1f Z - %.1f", x,y,z);
return 1;
}

stock GetPlayerCameraLookAt(playerid, &Float:X, &Float:Y, &Float:Z)
{
new
Float:CamX, Float:CamY, Float:CamZ,
Float:FrX, Float:FrY, Float:FrZ;
GetPlayerCameraPos(playerid, CamX, CamY, CamZ);
GetPlayerCameraFrontVector(playerid, FrX, FrY, FrZ);
X = FrX + CamX;
Y = FrY + CamY;
Z = FrZ + CamZ;
}

DeimoS
11.10.2020, 13:06
А сама камера, при этом, тоже в том направлении направлена? Или на деле она в правильном направлении смотрит, но функция возвращает не те данные?
Если первое - увеличь таймер и/или используй InterpolateCameraPos/InterpolateCameraLookAt.

Union
11.10.2020, 13:16
Камера перемещается в координаты: https://ibb.co/ChC7705

Интервал таймера менял

- - - Добавлено - - -

DeimoS, спасибо. InterpolateCameraPos и InterpolateCameraLookAt справились с задачей. Просто не пойму почему не работает тоже самое с SetPlayerCameraPos и SetPlayerCameraLookAt, хотя мод полностью чистый.

DeimoS
11.10.2020, 15:38
Так работает режим спектатора. На wiki это было написано, вроде как.