DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ UpdateUDAngleUnlocked()

float UpdateUDAngleUnlocked ( out float pAngle,
out float pAngleAdd,
float pMin,
float pMax,
float pDt )
protected

См. определение в файле DayZPlayerCamera_Base.c строка 150

151 {
152 float target = 0.0;
153
154 if (m_pInput.CameraIsTracking())
155 {
156 pAngleAdd = m_pInput.GetTracking()[1] * Math.RAD2DEG;
157 pAngle = target;
158
159 m_fUDAngleVel[0] = 0;
160 }
161 else
162 {
163 if (m_pInput.CameraIsFreeLook())
164 {
165 pAngleAdd += m_pInput.GetAimDelta(pDt)[1] * Math.RAD2DEG;
166
167 m_fUDAngleVel[0] = 0;
168 }
169 else
170 {
171 target = m_CommandWeapons.GetBaseAimingAngleUD();
172 pAngleAdd = pAngle + pAngleAdd - target;
173 pAngle = target;
174
175 PlayerBase player = PlayerBase.Cast(m_pPlayer);
176 if (player) // handle locking of camera U/D angle movement when performing an action and not in freelook
177 {
178 float pitch = pAngle + pAngleAdd;
179 float downLimit, upLimit, leftLimit, rightLimit;
180 player.GetLookLimits(downLimit, upLimit, leftLimit, rightLimit);
181
182 if (pitch < (upLimit + 1) && pitch > (downLimit - 1)) // stop smoothing once within sufficiently small difference
183 {
184 pMin = downLimit;
185 pMax = upLimit;
186 }
187 else // smooth camera to locked angle, avoiding snap from the angle we started the action to the limit
188 {
189 float velMin[1] = m_fUDAngleVel;
190 pMin = Math.SmoothCD(pitch, downLimit, velMin, 0.2, 1000, pDt);
191
192 float velMax[1] = m_fUDAngleVel;
193 pMax = Math.SmoothCD(pitch, upLimit, velMax, 0.2, 1000, pDt);
194 }
195 }
196
197 pAngleAdd = Math.SmoothCD(pAngleAdd, 0.0, m_fUDAngleVel, 0.14, 1000, pDt);
198 }
199
200 if (!m_pInput.CameraIsFreeLook())
201 {
202 pAngle += m_pInput.GetAimDelta(pDt)[1] * Math.RAD2DEG;
203 }
204 }
205
206 pAngle = Limit(pAngle, pMin, pMax);
207 pAngleAdd = Limit(pAngle + pAngleAdd, pMin, pMax) - pAngle;
208
209 return pAngle + pAngleAdd;
210 }
float m_fUDAngleVel[1]
Определения DayZPlayerCamera_Base.c:753
HumanCommandWeapons m_CommandWeapons
Определения DayZPlayerCamera_Base.c:764
Определения EnMath.c:7
Определения PlayerBaseClient.c:2
DayZPlayer m_pPlayer
data
Определения dayzplayer.c:135
HumanInputController m_pInput
human input
Определения dayzplayer.c:136
static const float RAD2DEG
Определения EnMath.c:16
static proto float SmoothCD(float val, float target, inout float velocity[], float smoothTime, float maxVelocity, float dt)
Does the CD smoothing function - easy in | easy out / S shaped smoothing.
Limit

Перекрестные ссылки Limit, m_CommandWeapons, m_fUDAngleVel, m_pInput, m_pPlayer, Math::RAD2DEG и Math::SmoothCD().

Используется в DayZPlayerCamera3rdPersonVehicleMotorbike::OnUpdate(), DayZPlayerCameraBase::OnUpdate() и OnUpdate().