注册 登录
编程论坛 ASP.NET技术论坛

关于keystate函数的问题,我只按了一次左方向键,他就像按了几次一样

bok002121 发布于 2013-07-24 15:26, 582 次点击
  
  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);               
             }}
6 回复
#2
Eumenides_me2013-07-24 17:18
KEYDOWN方法没贴出来

估计你调用的可能是KeyDown事件, 你可以改用KeyPress试试。
#3
bok0021212013-07-24 17:38
回复 2楼 Eumenides_me
#define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000)? 1 : 0)

我用KEYDOWN和keystate都不行。。keypress用法是什么
#4
bok0021212013-07-24 17:41
回复 楼主 bok002121
额,自己百度
#5
bok0021212013-07-24 17:44
回复 2楼 Eumenides_me
C-FREE5.0还没有KeyPress
#6
Eumenides_me2013-07-24 18:23
抱歉, 抱歉 ,我的理解错误, 你还是到对应编程语言版块去提问, 我当成C#的windows form程序了。
#7
bok0021212013-07-25 09:53
回复 6楼 Eumenides_me
.....瞎了,跑这来了
1