ПредишенСледващото

Надзорници камера Източник SDK

Контрольори камери са разположени в няколко изходни файлове, но повечето от тях е централизирана в класа CInput (или CSDKInput). Повечето от настройките и камера контрол е достъпна чрез методи CInput класа директно редактиране. или чрез извършване на промени в междинни класове CSDKInput. Имайте предвид, че можете директно да редактирате esly CInput клас. тя може значително да усложни актуализация Source SDK на; От друга страна, ако решите да работите чрез CSDKInput клас. тогава ще трябва да замени и да се замени с голям брой методи CInput клас.

основни понятия

Преди да започнем, ние трябва да се помисли как да се предоставя камерата в двигателя. Позицията и посоката на камерата обикновено е представен като съвкупност от координатната промени, отнасящи се към плейъра. Може да си мислите, че тези промени са набор от инструкции казват как да позиционирате камерата спрямо позицията на играч на:

  • Първо, въртене около вертикална ос от отклонението на преместване векторни компоненти (това се превръща в лявата или дясната камера).
  • Освен това, завъртане около хоризонтална ос, с вектор изместване терена компонент (той се движи нагоре и надолу, камерата на).
  • И накрая, движещ се назад в посока от текущата позиция през компонент на разстояние вектор.

Изместването се съхранява в камера m_vecCameraOffset вектор. Имате достъп до компонентите на терена, отклонение от курса и разстоянието помощта на предварително инсталирания набор от ценности (PITCH. ОТКЛОНЕНИЕ ОТ КУРСА., И DIST) изброяване (ENUM).

съответните досиета

  • игра \ клиент \ iinput.h съдържа разширение на абстрактен клас CInput.
  • игра \ клиент \ input.h съдържа основният клас CInput.
  • игра клиент \ in_camera.cpp \ съдържа повечето от режима на разширения камера в трето лице.
  • игра \ клиент \ SDK \ sdk_in_main.cpp съдържа CSDKInput клас. която се използва да замени клас функционалност CInput.
  • игра клиент \ in_mouse.cpp \ съдържа специален код, за да актуализирате пристрастия перфектно камерата (идеална камера) на базата на движението на мишката в режим на третото лице.

Как трето лице камера

Клас CInput има пълен достъп до входа на клавиатурата и мишката клиента. Тя може да се използва информация за това как да се движи мишката, за да повлияе на позицията на камерата. камерата на преместване на клиента актуализира променливи cam_idealpitch и cam_idealyaw да предостави информация за идеална позиция на камерата. Използвайки тази информация, за метод CInput :: CAM_Think ще актуализира действителното движение на камерата за проследяване на движението на мишката. Това проследяване се извършва с известно закъснение, за да добавите хубав ефект, вместо проследяване справка nemedlennogoy към новата позиция.

В допълнение, метод CInput :: CAM_Think осигурява основна откриване сблъсък с фотоапарата, се уверете, че камерата не се е разпаднала на стената. Фотоапаратът автоматично ще се премести по-близо до играча в случай, когато нещо е между играча и позицията на камерата.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!