Leadwerks Engine 2.3 Урок второй Итак, мы хотим полетать и рассмотреть нашу сцену. Нам нужно спрятать мышку, чтобы было как в шутерах(это добавляем после загрузки сцены): Думаю тут пояснений не надо. Далее мы создадим переменную для обзора мышкой чтобы она хранила три координаты: Code camrotation = Vec3(0) Ноль означает что значения пока нет. Теперь перейдем к самому главному, но и сложному. (Это нужно писать внутри цикла)Зададим две переменные для мышки и камеры: Code gx=Curve(MouseX() - GraphicsWidth() /2, gx, 10) gy=Curve(MouseY() - GraphicsHeight() /2, gy, 10) Это трудно понять, но если немного подумать... Теперь зададим координаты той самой переменной, которую мы создали(Это, и все остальное мы будем писать внутри цикла): Code camrotation.x = camrotation.x + gy / 10 camrotation.y = camrotation.y - gx / 10 Тут уже все понятно. На самом деле можно сделать управление камерой с меньшим количеством кода, но тогда камера будет вертеться очень плохо. Теперь делаем так чтобы камера смотрела туда, где мышка: Code camera:SetRotation(camrotation,1) Управление камерой мышкой почти готово, осталось только сделать так, чтобы мышка была всегда в центре экрана: Code MoveMouse(GraphicsWidth()/2,GraphicsHeight()/2) И делаем движение: Code move = KeyDown(KEY_D) - KeyDown(KEY_A), move, 10 strafe = KeyDown(KEY_W) - KeyDown(KEY_S), strafe, 10 camera:Move(Vec3(move/10, 0, strafe/10)) Тут тоже, кто хоть чуть чуть знает любой ЯП, поймет этот код. Теперь компилируем и радуемся. Кто скажет что камера не совсем хороша -> в английском видео туториале на офф. сайте, камера была просто бешеная! |