本文整理汇总了C++中CClientVehicle::GetMoveSpeed方法的典型用法代码示例。如果您正苦于以下问题:C++ CClientVehicle::GetMoveSpeed方法的具体用法?C++ CClientVehicle::GetMoveSpeed怎么用?C++ CClientVehicle::GetMoveSpeed使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CClientVehicle
的用法示例。
在下文中一共展示了CClientVehicle::GetMoveSpeed方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DoPulse
void CClientPathNode::DoPulse(void)
{
list<CClientEntity*>::iterator iter = m_List.begin();
for (; iter != m_List.end(); iter++)
{
// TEST!
if ((*iter)->GetType() == CCLIENTVEHICLE)
{
CClientVehicle* pVehicle = static_cast<CClientVehicle*>(*iter);
CVector vecMoveSpeed;
pVehicle->GetMoveSpeed(vecMoveSpeed);
vecMoveSpeed.fZ = 0.0f;
pVehicle->SetMoveSpeed(vecMoveSpeed);
}
(*iter)->SetPosition(m_vecPosition);
}
}
示例2: ProcessVehicleList
///////////////////////////////////////////////////////////////
//
// CClientModelCacheManagerImpl::ProcessVehicleList
//
///////////////////////////////////////////////////////////////
void CClientModelCacheManagerImpl::ProcessVehicleList(std::map<ushort, float>& outNeedCacheList, const std::vector<CClientVehicle*>& vehicleList,
float fMaxStreamDistanceSq)
{
const ulong ulTimeNow = CClientTime::GetTime();
for (std::vector<CClientVehicle*>::const_iterator iter = vehicleList.begin(); iter != vehicleList.end(); ++iter)
{
CClientVehicle* pVehicle = *iter;
const ushort usModelId = pVehicle->GetModel();
if (usModelId < 400 || usModelId > 611)
continue;
// Check if currently within distance
{
// Check distance
CVector vecPosition;
pVehicle->GetPosition(vecPosition);
float fDistSq = (m_vecCameraPos - vecPosition).LengthSquared();
if (fDistSq < fMaxStreamDistanceSq)
{
// Add model to needed list
InsertIntoNeedCacheList(outNeedCacheList, usModelId, fDistSq);
AddProcessStat("p", true, PURESYNC_TYPE_NONE, usModelId, vecPosition, vecPosition);
continue;
}
}
CClientPlayer* pDriver = DynamicCast<CClientPlayer>(pVehicle->GetControllingPlayer());
if (!pDriver)
continue;
// Check if will be within distance soon
ePuresyncType syncType = pDriver->GetLastPuresyncType();
if (syncType == PURESYNC_TYPE_PURESYNC || syncType == PURESYNC_TYPE_LIGHTSYNC)
{
ulong ulSyncAge = ulTimeNow - pDriver->GetLastPuresyncTime();
if (ulSyncAge < 8000)
{
// Get velocity from somewhere
CVector vecVelocity;
if (syncType == PURESYNC_TYPE_LIGHTSYNC)
vecVelocity = pDriver->GetLightsyncCalcedVelocity();
else
{
pVehicle->GetMoveSpeed(vecVelocity);
vecVelocity *= m_fGameFps;
}
// Extrapolate position for 2 seconds time
float fSecondsToAdd = std::min(6000UL, ulSyncAge + 2000) * 0.001f;
CVector vecPosition;
pVehicle->GetPosition(vecPosition);
CVector vecNewPosition = vecPosition + vecVelocity * fSecondsToAdd;
// Check distance
float fDistSq = (m_vecCameraPos - vecNewPosition).LengthSquared();
if (fDistSq < fMaxStreamDistanceSq)
{
// Add model to needed list
InsertIntoNeedCacheList(outNeedCacheList, usModelId, fDistSq);
AddProcessStat("l", true, syncType, usModelId, vecPosition, vecNewPosition);
continue;
}
AddProcessStat("n", false, syncType, usModelId, vecPosition, vecNewPosition);
continue;
}
}
}
}
示例3: RecordLocalData
void CClientPacketRecorder::RecordLocalData(CClientPlayer* pLocalPlayer)
{
if (m_bRecording && m_szFilename)
{
// Open our file
FILE* pFile = fopen(m_szFilename, "ab+");
if (pFile)
{
// Write our timestamp
if (m_bFrameBased)
{
long lFrameStamp = m_lFrames - m_lRelative;
fwrite(&lFrameStamp, sizeof(long), 1, pFile);
}
else
{
long lTimeStamp = CClientTime::GetTime() - m_lRelative;
fwrite(&lTimeStamp, sizeof(long), 1, pFile);
}
// fwrite ( &ulTimeStamp, sizeof ( unsigned long ), 1, pFile );
// Write the packet ID
fputc(0xFE, pFile);
// Grab the vehicle
CClientVehicle* pVehicle = pLocalPlayer->GetOccupiedVehicle();
if (pVehicle)
{
// Read out the matrix, movespeed and turnspeed
CMatrix matVehicle;
CVector vecMoveSpeed;
CVector vecTurnSpeed;
pVehicle->GetMatrix(matVehicle);
pVehicle->GetMoveSpeed(vecMoveSpeed);
pVehicle->GetTurnSpeed(vecTurnSpeed);
float fHealth = pVehicle->GetHealth();
// Write it
fwrite(&matVehicle.vRight.fX, sizeof(float), 1, pFile);
fwrite(&matVehicle.vRight.fY, sizeof(float), 1, pFile);
fwrite(&matVehicle.vRight.fZ, sizeof(float), 1, pFile);
fwrite(&matVehicle.vFront.fX, sizeof(float), 1, pFile);
fwrite(&matVehicle.vFront.fY, sizeof(float), 1, pFile);
fwrite(&matVehicle.vFront.fZ, sizeof(float), 1, pFile);
fwrite(&matVehicle.vUp.fX, sizeof(float), 1, pFile);
fwrite(&matVehicle.vUp.fY, sizeof(float), 1, pFile);
fwrite(&matVehicle.vUp.fZ, sizeof(float), 1, pFile);
fwrite(&matVehicle.vPos.fX, sizeof(float), 1, pFile);
fwrite(&matVehicle.vPos.fY, sizeof(float), 1, pFile);
fwrite(&matVehicle.vPos.fZ, sizeof(float), 1, pFile);
fwrite(&vecMoveSpeed.fX, sizeof(float), 1, pFile);
fwrite(&vecMoveSpeed.fY, sizeof(float), 1, pFile);
fwrite(&vecMoveSpeed.fZ, sizeof(float), 1, pFile);
fwrite(&vecTurnSpeed.fX, sizeof(float), 1, pFile);
fwrite(&vecTurnSpeed.fY, sizeof(float), 1, pFile);
fwrite(&vecTurnSpeed.fZ, sizeof(float), 1, pFile);
fwrite(&fHealth, sizeof(float), 1, pFile);
// Write the controller state
CControllerState cs;
g_pGame->GetPad()->GetCurrentControllerState(&cs);
fwrite(&cs, sizeof(CControllerState), 1, pFile);
}
// Close the file
fclose(pFile);
}
}
}