BOOL CMfcSnakeDlg::PreTranslateMessage(MSG* pMsg) { // TODO: 在此添加专用代码和/或调用基类 if (START && DEAD == false) { if (my_snake.direc != 2 && (pMsg->wParam == VK_UP || pMsg->wParam == 'w' || pMsg->wParam == 'W')) my_snake.direc = 1; else if (my_snake.direc != 1 && (pMsg->wParam == VK_DOWN || pMsg->wParam == 's' || pMsg->wParam == 'S')) my_snake.direc = 2; else if (my_snake.direc != 4 && (pMsg->wParam == VK_LEFT || pMsg->wParam == 'a' || pMsg->wParam == 'A')) my_snake.direc = 3; else if (my_snake.direc != 3 && (pMsg->wParam == VK_RIGHT || pMsg->wParam == 'd' || pMsg->wParam == 'D')) my_snake.direc = 4; } /*if (pMsg->message == WM_KEYDOWN) { if (pMsg->hwnd == GetDlgItem(IDC_EDIT_score)->m_hWnd) { return true; } }*/ //return CDialogEx::PreTranslateMessage(pMsg); return FALSE; }
时间: 2023-07-19 21:53:31 浏览: 100
C Standard ISO/IEC 9899:1999(E)
5星 · 资源好评率100%
这段代码是贪吃蛇游戏中的消息处理函数,会在用户按下键盘键时被调用。它的作用是根据用户按下的键盘键来控制贪吃蛇的移动方向。
函数中首先判断游戏是否已经开始并且贪吃蛇是否已经死亡。如果游戏已经开始并且贪吃蛇还没有死亡,就根据用户按下的键盘键来控制贪吃蛇的移动方向。如果用户按下的键盘键不是上下左右方向键或 w/a/s/d 键,则函数不做任何处理。最后,函数返回 FALSE,表示消息已经被处理。
阅读全文