Hagrael | Дата: Суббота, 11 Июня 2011, 09:23 | Сообщение # 1 |
почетный гость
Сейчас нет на сайте
| У меня такая идея: по дерганию мыши меняется угол камеры, а далее по некой математической функции находятся ее координаты. Вот как я реализовал поворот камеры, если ее угол больше либо равен 20 градусам: Code PositionEntity camera\model, 0, Sin(cameraAngle), Cos(cameraAngle) То есть я меняю ее Y и Z (Y - вертикальная ось, Z - невидимая), вращая ее вокруг персонажа по кругу с помощью синуса (Y) и косинуса (Z).
Однако если угол меньше 20 градусов, то тут все сложнее. Если я сделаю обработку этого случая таким же способом, то камера будет уходить под землю. А мне надо, чтобы игрок был все время в камере (когда камера направлена в самый верх (а у меня это, кстати -80 градусов), то должна быть видна только голова игрока). С перемещением по оси Z проблем нету (оно напрямую зависит от градуса), но вот как составить зависимость Y от Z не знаю. Конечно, я могу составить прямую зависимость (Y=kZ), но тогда если вы вначале посмотрите на персонажа сверху (там камера будет плавно ездить вокруг) (до 80 гр.), а после опустите камеру до предела (-80 гр.), то после 20 гр. произойдет резкая смена траектории, что не будет хорошей чертой геймплея. Вот, кстати график (будем считать ту кривую сверху дугой ). С подобного рода функциями я еще никогда не сталкивался и буду вам признателен, если вы меня толкнете в нужном направлении.
Сообщение отредактировал Hagrael - Суббота, 11 Июня 2011, 09:25 |
|
| |