代码拉取完成,页面将自动刷新
#include <x_widget.h>
#include <xwindows.h>
#include <snake.h>
#include <GUI_timeout.h>
#include <gui.h>
static p_win_t snake_win;
static p_guitime_out_t snake_timeout;
static uint8_t WinProcessSnakeFunction(void *Object, void *arg, p_msg_t hMsg)
{
switch (hMsg->msgType)
{
case MSG_WIN:
if (hMsg->msgID == MSG_WIN_CREATE)
{
}
else if (hMsg->msgID == MSG_WIN_PAINT)
{
/*重绘*/
snake_gui_update(Object);
}
break;
case MSG_KEY:
switch (hMsg->msgID)
{
case MSG_KEY_UP:
if (hMsg->msgVal.status)
{
snake_set_dir(3);
}
else
{
}
break;
case MSG_KEY_DOWN:
if (hMsg->msgVal.status)
{
snake_set_dir(0);
}
else
{
}
break;
case MSG_KEY_LEFT:
if (hMsg->msgVal.status)
{
snake_set_dir(1);
}
else
{
}
break;
case MSG_KEY_RIGHT:
if (hMsg->msgVal.status)
{
snake_set_dir(2);
}
else
{
}
break;
case MSG_KEY_0:
if (hMsg->msgVal.status)
{
}
else
{
}
break;
case MSG_KEY_1:
if (hMsg->msgVal.status)
{
}
else
{
}
break;
case MSG_KEY_N:
if (hMsg->msgVal.status)
{
}
else
{
}
break;
case MSG_KEY_M:
if (hMsg->msgVal.status)
{
}
else
{
}
break;
case MSG_KEY_W:
if (hMsg->msgVal.status)
{
}
else
{
}
break;
case MSG_KEY_S:
if (hMsg->msgVal.status)
{
}
else
{
}
break;
case MSG_KEY_A:
if (hMsg->msgVal.status)
{
}
else
{
}
break;
case MSG_KEY_D:
if (hMsg->msgVal.status)
{
}
else
{
}
break;
case MSG_KEY_V:
if (hMsg->msgVal.status)
{
}
else
{
}
break;
case MSG_KEY_B:
if (hMsg->msgVal.status)
{
}
else
{
}
break;
}
break;
}
return TRUE;
}
static void GUITimeoutSnakeCallback(void *arg)
{
snake_update();
WindowsInvaildRect(arg, NULL);
GUITimeoutOpen(snake_timeout);
}
void snake_gui_init(void)
{
snake_win = WindowsCreate("Snake", 0, 0, 375, 300);
WindowsSetProcessCallBack(snake_win, WinProcessSnakeFunction);
// _SET_IS_DPY(hWin4);
WinListAdd(&snake_win->groupWidge.widgeBase);
snake_timeout = GUITimeoutCreate(500, snake_win, GUITimeoutSnakeCallback);
GUITimeoutOpen(snake_timeout);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。