本文整理汇总了C++中KPlayer::SetMoveState方法的典型用法代码示例。如果您正苦于以下问题:C++ KPlayer::SetMoveState方法的具体用法?C++ KPlayer::SetMoveState怎么用?C++ KPlayer::SetMoveState使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KPlayer
的用法示例。
在下文中一共展示了KPlayer::SetMoveState方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnSyncPlayer
BOOL KPlayerBaseProcess::OnSyncPlayer( LPCBYTE pData, UINT uDataLen )
{
KS2C_SYNC_PLAYER* pReceived = (KS2C_SYNC_PLAYER*)pData;
// CheckSize
QCONFIRM_RET_FALSE(_offsetof(KS2C_SYNC_PLAYER, sVarSync.aMapVarSet) + sizeof(KMAP_VAR_VALUE) *
(pReceived->sVarSync.wMapVarNum) == uDataLen);
// TODO: improve
KPlayer* pPlayer = g_cPlayerMgr.GetById(pReceived->dwPlayerId);
if (pPlayer)
{
pPlayer->m_cPlayerClient.LoadSyncVarOther(pReceived->sVarSync);
pPlayer->SetPosition(pReceived->nX, pReceived->nY, pReceived->nZ);
pPlayer->SetMoveState((KE_MOVE_STATE)pReceived->nMoveState);
pPlayer->m_nVelocityXY = pReceived->nVelocityXY;
pPlayer->m_nDestX = pReceived->nDestX;
pPlayer->m_nDestY = pReceived->nDestY;
pPlayer->m_nDestZ = pReceived->nDestZ;
pPlayer->m_nFaceDirection = pReceived->nDirectionXY; // 暂时用速度方向代替
pPlayer->SetKinName(pReceived->szKinName);
pPlayer->SetKinId(pReceived->dwKinId);
pPlayer->SetKinFigure(pReceived->dwKinFigure);
QLogPrintf(LOG_LEVEL_WARNING, "[PlayerBaseProcess] %s :player_id=%d,already exists", __FUNCTION__, pReceived->dwPlayerId);
return FALSE;
}
else
{
pPlayer = g_cOrpgWorld.AddPlayer(pReceived->szName, pReceived->dwPlayerId);
QCONFIRM_RET_FALSE(pPlayer);
pPlayer->m_cPlayerClient.LoadSyncVarOther(pReceived->sVarSync);
// get client scene
IKScene* pScene = g_pSceneMgr->FirstScene();
QCONFIRM_RET_FALSE(pScene);
pScene->AddPlayer(pPlayer, pReceived->nX, pReceived->nY, pReceived->nZ);
pPlayer->SetMoveState((KE_MOVE_STATE)pReceived->nMoveState);
pPlayer->m_nVelocityXY = pReceived->nVelocityXY;
pPlayer->m_nDestX = pReceived->nDestX;
pPlayer->m_nDestY = pReceived->nDestY;
pPlayer->m_nDestZ = pReceived->nDestZ;
pPlayer->m_nFaceDirection = pReceived->nDirectionXY; // 暂时用速度方向代替
pPlayer->SetKinName(pReceived->szKinName);
pPlayer->SetKinId(pReceived->dwKinId);
pPlayer->SetKinFigure(pReceived->dwKinFigure);
pPlayer->FireEvent(emKOBJEVENTTYPE_CHARACTER_ENTER_SCENE, pPlayer->GetId(), FALSE, 0);
return TRUE;
}
return TRUE;
}
示例2: OnSyncAdjustMove
BOOL KPlayerBaseProcess::OnSyncAdjustMove( LPCBYTE pData, UINT uDataLen )
{
KS2C_SYNC_ADJUST_MOVE* pReceived = (KS2C_SYNC_ADJUST_MOVE*)pData;
//cprintf("Adjust: %d\n", pPak->nMoveCount);
KPlayer* pPlayer = g_cPlayerMgr.GetById(g_cOrpgWorld.m_dwClientPlayerId);
QCONFIRM_RET_FALSE(pPlayer);
//if (pReceived->nMoveCount < pPlayer->m_sMoveCtrl.nMoveCount || pPlayer->m_pScene == NULL)
//{
// QLogPrintf(
// LOG_DEBUG, "[move] apply adjust(%d < %d)",
// pReceived->nMoveCount, pPlayer->m_sMoveCtrl.nMoveCount
// );
// DoApplyMoveAdjust();
// goto EXIT0;
//}
INT nX = 0, nY = 0, nZ = 0;
pPlayer->GetPosition(nX, nY, nZ);
{
printf("[MoveAdjust] S[%d-%d],c[%d,%d,%d]s[%d,%d,%d],F[%d-%d] Diff[%d]\n",
pPlayer->m_eMoveState,
pReceived->nMoveState,
nX, nY, nZ,
pReceived->nX, pReceived->nY, pReceived->nZ,
g_cOrpgWorld.m_dwLogicFrames, pReceived->dwVirtualFrame,
g_cOrpgWorld.m_dwLogicFrames - pReceived->dwVirtualFrame);
}
pPlayer->SetPosition(pReceived->nX, pReceived->nY, pReceived->nZ);
pPlayer->SetMoveState((KE_MOVE_STATE)pReceived->nMoveState);
pPlayer->m_nVelocityXY = pReceived->nVelocityXY;
pPlayer->m_nDirectionXY = pReceived->nDirectionXY;
pPlayer->m_nDestX = pReceived->nDestX;
pPlayer->m_nDestY = pReceived->nDestY;
pPlayer->m_nDestZ = pReceived->nDestZ;
if (pReceived->dwVirtualFrame < g_cOrpgWorld.m_dwLogicFrames)
{
pPlayer->ForwardPosition(g_cOrpgWorld.m_dwLogicFrames - pReceived->dwVirtualFrame);
}
EXIT0:
return TRUE;
}