您的位置:首页 > 其它

MFC---鼠标单击小游戏简单实现

2013-02-28 17:50 225 查看
声明:主要参考《MFC实例》

功能:测试点击鼠标的速度,在界面上显示速度和级别。

过程:1、单击开始后获取开始时间,初始化计数为0并设置开始状态为true;

2、响应单击鼠标左键消息。如果开始状态为假则直接返回,这主要是为避免在单击开始之前就进行计数。此时由于开始时间未知,会在计算速度时产生未知的结果:

1 endTime = CTime::GetCurrentTime(); // 获取当前结束时间
timeSpan = endTime - beginTime; // 计算时间差
float seconds = (float)(timeSpan.GetSeconds());
if (seconds)
{
m_rate = count / seconds * 60;
}


之后对速度进行分类并给出对应级别。

主要代码如下:

void CClickMouseDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if (false == m_start)
{
return; // 未单击开始则不进入计数
}
count++;

CDialog::OnLButtonDown(nFlags, point);

endTime = CTime::GetCurrentTime(); // 获取当前结束时间
timeSpan = endTime - beginTime; // 计算时间差
float seconds = (float)(timeSpan.GetSeconds());
if (seconds)
{
m_rate = count / seconds * 60;
}

if (m_rate < 280)
{
m_level = "新手入门";
}
else if (m_rate >= 280 && m_rate < 310)
{
m_level = "鼠标达人";
}
else if (m_rate >= 310 && m_rate < 340)
{
m_level = "鼠标强人";
}
else if (m_rate >= 340 && m_rate < 370)
{
m_level = "鼠标牛人";
}
else if (m_rate >= 370 && m_rate < 400)
{
m_level = "鼠标超人";
}
else if (m_rate >= 400 && m_rate < 420)
{
m_level = "鼠标无影手";
}
else
{
m_level = "天下无敌";
}

UpdateData(false);
}

void CClickMouseDlg::OnButtonClick()
{
// TODO: Add your control notification handler code here
beginTime = CTime::GetCurrentTime();
count = 0;
m_start = true; // 设置单击开始后状态为真
}


效果如下图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: