本文整理汇总了C++中CClientEntity::SetPosition方法的典型用法代码示例。如果您正苦于以下问题:C++ CClientEntity::SetPosition方法的具体用法?C++ CClientEntity::SetPosition怎么用?C++ CClientEntity::SetPosition使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CClientEntity
的用法示例。
在下文中一共展示了CClientEntity::SetPosition方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetElementPosition
void CElementRPCs::SetElementPosition ( NetBitStreamInterface& bitStream )
{
// Read out the entity id and the position
ElementID ID;
CVector vecPosition;
unsigned char ucTimeContext;
if ( bitStream.Read ( ID ) &&
bitStream.Read ( vecPosition.fX ) &&
bitStream.Read ( vecPosition.fY ) &&
bitStream.Read ( vecPosition.fZ ) &&
bitStream.Read ( ucTimeContext ) )
{
// Grab the entity
CClientEntity* pEntity = CElementIDs::GetElement ( ID );
if ( pEntity )
{
// Update the sync context to the new one
pEntity->SetSyncTimeContext ( ucTimeContext );
// If it's a player, use Teleport
if ( pEntity->GetType () == CCLIENTPLAYER )
{
unsigned char ucWarp = 1;
bitStream.Read ( ucWarp );
CClientPlayer* pPlayer = static_cast < CClientPlayer* > ( pEntity );
if ( ucWarp )
{
pPlayer->Teleport ( vecPosition );
pPlayer->ResetInterpolation ();
}
else
{
pPlayer->SetPosition ( vecPosition );
}
// If local player, reset return position (so we can't warp back if connection fails)
if ( pPlayer->IsLocalPlayer () )
{
m_pClientGame->GetNetAPI ()->ResetReturnPosition ();
}
}
else if ( pEntity->GetType () == CCLIENTVEHICLE )
{
CClientVehicle* pVehicle = static_cast < CClientVehicle* > ( pEntity );
pVehicle->RemoveTargetPosition ();
pVehicle->SetPosition ( vecPosition );
}
else
{
// Set its position
pEntity->SetPosition ( vecPosition );
}
}
}
}
示例2: DetachElements
void CElementRPCs::DetachElements ( NetBitStreamInterface& bitStream )
{
ElementID ID;
unsigned char ucTimeContext;
if ( bitStream.Read ( ID ) &&
bitStream.Read ( ucTimeContext ) )
{
CClientEntity* pEntity = CElementIDs::GetElement ( ID );
if ( pEntity )
{
pEntity->SetSyncTimeContext ( ucTimeContext );
pEntity->AttachTo ( NULL );
CVector vecPosition;
if ( bitStream.Read ( vecPosition.fX ) &&
bitStream.Read ( vecPosition.fY ) &&
bitStream.Read ( vecPosition.fZ ) )
{
pEntity->SetPosition ( vecPosition );
}
}
}
}
示例3: SetElementInterior
void CElementRPCs::SetElementInterior ( NetBitStreamInterface& bitStream )
{
ElementID ID;
unsigned char ucInterior, ucSetPosition;
if ( bitStream.Read ( ID ) && bitStream.Read ( ucInterior ) && bitStream.Read ( ucSetPosition ) )
{
CClientEntity* pEntity = CElementIDs::GetElement ( ID );
if ( pEntity )
{
pEntity->SetInterior ( ucInterior );
if ( ucSetPosition == 1 )
{
CVector vecPosition;
if ( bitStream.Read ( vecPosition.fX ) &&
bitStream.Read ( vecPosition.fY ) &&
bitStream.Read ( vecPosition.fZ ) )
{
pEntity->SetPosition ( vecPosition );
}
}
}
}
}