Adjusted projectile physics
This commit is contained in:
parent
c743c7fd0c
commit
d315534b76
@ -353,9 +353,11 @@ void cProjectileEntity::HandlePhysics(std::chrono::milliseconds a_Dt, cChunk & a
|
||||
return;
|
||||
}
|
||||
|
||||
const Vector3d PerTickSpeed = GetSpeed() / 20;
|
||||
auto DtSec = std::chrono::duration_cast<std::chrono::duration<double>>(a_Dt);
|
||||
|
||||
const Vector3d DeltaSpeed = GetSpeed() * DtSec.count();
|
||||
const Vector3d Pos = GetPosition();
|
||||
const Vector3d NextPos = Pos + PerTickSpeed;
|
||||
const Vector3d NextPos = Pos + DeltaSpeed;
|
||||
|
||||
// Test for entity collisions:
|
||||
cProjectileEntityCollisionCallback EntityCollisionCallback(this, Pos, NextPos);
|
||||
@ -392,8 +394,8 @@ void cProjectileEntity::HandlePhysics(std::chrono::milliseconds a_Dt, cChunk & a
|
||||
|
||||
// Add slowdown and gravity effect to the speed:
|
||||
Vector3d NewSpeed(GetSpeed());
|
||||
NewSpeed.y += m_Gravity / 20;
|
||||
NewSpeed *= TracerCallback.GetSlowdownCoeff();
|
||||
NewSpeed.y += m_Gravity * DtSec.count();
|
||||
NewSpeed -= NewSpeed * m_AirDrag * DtSec.count();
|
||||
SetSpeed(NewSpeed);
|
||||
SetYawFromSpeed();
|
||||
SetPitchFromSpeed();
|
||||
|
Loading…
Reference in New Issue
Block a user