关于keystate函数的问题,我只按了一次左方向键,他就像按了几次一样
#define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000)? 1 : 0) while(TRUE)
{
if(KEYDOWN(VK_LEFT))
{
if(S[0].DIR==UP_DIR)
t.DIR=LEFT_DIR; //上转左=左
else if(S[0].DIR==LEFT_DIR)
t.DIR=DOWN_DIR; //左转左=下
else if(S[0].DIR==DOWN_DIR)
t.DIR=RIGHT_DIR; //下转左=右
else
t.DIR=UP_DIR; //右转左=上
}
else if(KEYDOWN(VK_RIGHT))
{
if(S[0].DIR==UP_DIR)
t.DIR=RIGHT_DIR; //上转右=右
else if(S[0].DIR==RIGHT_DIR)
t.DIR=DOWN_DIR; //右转右=下
else if(S[0].DIR==DOWN_DIR)
t.DIR=LEFT_DIR; //下转右=左
else
t.DIR=UP_DIR; //左转右=上
}
else
{
t.DIR=S[0].DIR;
delay(10);
}
if(t.DIR==UP_DIR)
{
t.y=S[0].y-2*SNAKE_D;
t.x=S[0].x;
for(i=len-1;i>0;i--)
S[i]=S[i-1];
S[i]=t;
Draw_Snake(S,len);
delay(50);
}}