Показать сообщение отдельно
Старый 26.09.2005, 06:48   #45
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
angy#=MouseYSpeed()*0.5
moveEntity cam, 0, angy, 0
Так тут ты сам двигаешь ее по оси Y....
У SubZero было moveentity cam,0,0,angz - то есть он двигал по Z.
Но так как камера стоит не горизонтально из-зи ПоинтЕнтити, то она вверх-вних двигалась.

Чтобы проще было работать с камерой, сделай для нее свою систему координат - Pivot

camPiv = createpivot()
cam = createcamera(camPiv)

Теперь у тебя камера будет двигаться относительно camPiv.
Вместо передвижения камеры теперь передвигай camPiv, а саму камеру только поворачивай:

d_yaw# = entityyaw(camPiv,player) ;точно не помню название команды, вобщем она должна возвращать угол между игроком и камерой по оси Y
turnentity camPiv,0,d_yaw#,0
pointentity cam,player

Так ты повернешь canPiv мордой к игроку ТОЛЬКО по оси Y, это надо чтобы потом двигать его по Z (вобщем, в ГОРИЗОНТАЛЬНОЙ плоскости), а камера будет смотреть на игрока как раньше (должна )

Если теперь тебе надо двигать камеру, то двигай camPiv
angy#=MouseYSpeed()*0.5
1. moveEntity camPiv, 0, angy, 0 - вверх / вниз
2. moveEntity camPiv, 0, 0, angy - ближе / дальше по отношению к игроку

Раз тебе не надо вверх, то используй 2.
(Offline)
 
Ответить с цитированием