Fényképezőgép - szelep fejlesztői közösség
Felügyeletek kamra Source SDK
Vezérlők kamrák vannak elrendezve számos forrásból, de többségük központosított osztály CInput (vagy CSDKInput). A legtöbb beállítás és kamera vezérlő áll rendelkezésre közvetlen szerkesztést CInput osztály módszerek. vagy azáltal, hogy megváltoztatja a csonk osztályok CSDKInput. Tartsuk szem előtt, hogy közvetlenül szerkeszteni esly CInput osztályban. ez nagyban bonyolítja a frissítés Source SDK; Másrészt, ha úgy dönt, hogy a munka révén CSDKInput osztályban. akkor meg kell felülírni, és cserélje ki a nagy számú CInput osztály módszerek.
alapfogalmak
Mielőtt elkezdenénk, meg kell vizsgálni, hogy a kamera van a motorban. A helyzet és a kamera irányába mely rendszerint egy sor koordináta eltolódások a játékos. Lehet, úgy gondolja, hogy ezek a váltások egy sor utasítást mondja, hogy hogyan helyzetben a kamera képest a játékos összesen:
- Először is, rotációt egy függőleges tengely által elmozdulásvektorból komponensek legyezési (kiderül, hogy a bal vagy a jobb kamra).
- Továbbá körüli forgás vízszintes tengely elmozdulás pályát komponens vektor (ő mozgatja a kamerát fel és le).
- Végül, mozgó vissza abba az irányba az aktuális pozíciótól keresztül a vektor komponense távolságot.
Az eltolás a fényképezőgépen tárolt m_vecCameraOffset vektor. Van hozzáférése a komponensek a pályán, perdület, távolságát és az előtelepített értékrend (BÓLINTÁS. YAW., És DIST) felsorolás (enum).
az érintett fájlokat
- játék \ client \ iinput.h tartalmaz meghosszabbítása egy absztrakt osztály CInput.
- játék \ client \ input.h tartalmazza a fő osztály CInput.
- játék \ client \ in_camera.cpp tartalmazza a legtöbb kiterjesztés kamera mód a harmadik személy.
- játék \ client \ SDK \ sdk_in_main.cpp tartalmaz CSDKInput osztályban. amelyet felülírni CInput szintű funkciók.
- játék \ client \ in_mouse.cpp tartalmaz külön kód frissíteni a torzítás tökéletes kamera (ideális fényképezőgép) alapján az egér mozgását az üzemmódban a harmadik személy.
Hogyan fejti ki harmadik személynek kamera
Class CInput teljes hozzáférést biztosít a billentyűzet és az egér ügyfél. Meg tudja használni információt kell mozgatni az egeret, hogy befolyásolja a kamera helyzetét. A kamera mozog a kliens frissíti a változókat cam_idealpitch és cam_idealyaw, hogy adjon tájékoztatást az ideális pozíció a kamera. Ezt az információt felhasználva, az eljárás CInput :: CAM_Think frissíti az aktuális lépés a kamera követni a mozgását az egérrel. Ez nyomkövető a némi késéssel, hogy adjunk egy szép hatást, hanem a követési nemedlennogoy utalás az új helyzetbe.
Ezen túlmenően, az eljárás CInput :: CAM_Think alapszintű ütközésészlelés a kamera, győződjön meg arról, hogy a kamera nem szakítja meg a falon. A kamera automatikusan közelebb a játékos abban az esetben, ha valami a lejátszó és a kamera helyzetét.