当前位置: 首页>>代码示例>>C++>>正文


C++ CMouse::ClearMessage方法代码示例

本文整理汇总了C++中CMouse::ClearMessage方法的典型用法代码示例。如果您正苦于以下问题:C++ CMouse::ClearMessage方法的具体用法?C++ CMouse::ClearMessage怎么用?C++ CMouse::ClearMessage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CMouse的用法示例。


在下文中一共展示了CMouse::ClearMessage方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Run


//.........这里部分代码省略.........
		//	if (pKeyboard->IsKeyDown(DIK_ADD) || pKeyboard->IsKeyDown(DIK_DOWN))
		//	{
		//		s_fDistance += 0.5f;
		//		if (s_fDistance > s_fMaxDistance)
		//			s_fDistance = s_fMaxDistance;
		//		else if (s_fDistance < s_fMinDistance)
		//			s_fDistance = s_fMinDistance;

		//		ResumeCamera();
		//		RemoveCameraState();
		//		m_dwState &= ~SCS_SMOOTH;
		//	}
		//}
	}

	// 滚轮
	if ((m_dwState & SCS_MOUSE_WHEEL_ABLE) && pMouse->GetCurrentButton() == MB_WHEEL)
	{
		s_fDistance -= (float)((short)HIWORD(pMouse->GetWheelDelta())) * 0.01f;
		if (s_fDistance > s_fMaxDistance)
		{
			s_fDistance = s_fMaxDistance;	
		}
		else if (s_fDistance < s_fMinDistance)
		{
			s_fDistance = s_fMinDistance;
		}
		float fzDelta = (float)((short)HIWORD(pMouse->GetWheelDelta()));
		if (GetGame()->GetMainPlayer()->GetAction() != CShape::ACT_WALK&&GetGame()->GetMainPlayer()->GetAction() != CShape::ACT_RUN)
		{
			m_dwState &= ~SCS_SMOOTH;
		}
		
		ResumeCamera();
		RemoveCameraState();
	}

	extern bool g_bIsFocus;
	if (!g_bIsFocus)
		pMouse->ClearMessage();

	// 鼠标右键操作
	bool bRightUp = false;

	// 鼠标右键按下一次
	if (pMouse->GetCurrentButton() == RB_DOWN)
	{
		m_ptOldMouse.x  = pMouse->GetMouseX();
		m_ptOldMouse.y  = pMouse->GetMouseY();
		m_iOldHoriAngle = m_iHoriAngle;
		m_iOldVertAngle = m_iVertAngle;
		ResumeCamera();
	}

	// 鼠标右键弹起
	if (pMouse->GetCurrentButton() == RB_UP)
		bRightUp = true;

	// 鼠标右键按下不放
	if (pMouse->IsRightButtonDown() && !bRightUp)
	{
		if ((pMouse->GetMouseX() - m_ptOldMouse.x) > 1 || (pMouse->GetMouseX() - m_ptOldMouse.x) < -1)
		{
			if (!(m_dwState & SCS_LOCK_ROTATE))
			{
				m_iHoriAngle = (int)( m_iOldHoriAngle + (pMouse->GetMouseX() - m_ptOldMouse.x)*0.5 ) % 360;
				RemoveCameraState();
			}
			/*m_iVertAngle = (int)( m_iOldVertAngle + (pMouse->GetMouseX() - m_ptOldMouse.x)*0.5 ) % 360;
			m_dwState	 &= ~SCS_REPOS_V;*/
		}

		m_iVertAngle += (int)(((float)pMouse->GetMouseMoveY() * 0.5f));
		if (m_iVertAngle < m_iMinVertAngle)
			m_iVertAngle = m_iMinVertAngle;
		else if (m_iVertAngle > m_iMaxVertAngle)
			m_iVertAngle = m_iMaxVertAngle;

		ResumeCamera();
	}

	//IGUIRoot *pRoot = IGUIRoot::GetGUIInstance();
	//if(pRoot && pRoot->GetGUIComp())
	//{
	//	CComponent * pComp = pRoot->GetGUIComp()->GetComponentAt(pMouse->GetMouseX(),pMouse->GetMouseY());
	//	if(pComp && pComp->IsEnabled() && pComp->IsVisible() && 
	//		strcmp(pComp->GetName(),"ChatInfo")!=0 && strcmp(pComp->GetName(),"TeamPage")!=0 
	//		&& strcmp(pComp->GetName(),"MedalTipPage")!=0)
	//	{
	//		return;
	//	}
	//	// 鼠标右键双击
	//	if (pMouse->GetCurrentButton() == RB_DCLICK && !(m_dwState & SCS_LOCK_ROTATE))
	//	{
	//		m_dwState |= SCS_REPOS_H;
	//		m_dwState |= SCS_REPOS_V;
	//		//m_dwState |= SCS_REPOS_D;
	//	}
	//}
}
开发者ID:xiongshaogang,项目名称:mmo-resourse,代码行数:101,代码来源:RegionCamera.cpp


注:本文中的CMouse::ClearMessage方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。