| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 409 人关注过本帖
标题:代码中有一个地方看不懂为什么?关于按键的,大家看看吧
只看楼主 加入收藏
JackyZhang
Rank: 2
等 级:论坛游民
帖 子:82
专家分:29
注 册:2010-7-12
结帖率:60%
收藏
已结贴  问题点数:10 回复次数:4 
代码中有一个地方看不懂为什么?关于按键的,大家看看吧
程序代码:
int CSnake::keyPress(int key)        //按键控制
{
    if(up&&key == 72)     //return 5只是一种标记,代表此时要发设子弹                                                                                                                             
        return 5 ;
    if(down&&key == 80)
        return 5 ;
    if(left&&key == 75)
        return 5 ;
    if(right&&key ==77)
        return 5 ;
    if((up==true)&&(key==115||key==80))
        return 6;//反向向下
    if((down == true)&&(key == 119||key==72))
        return 6;//反向向上
    if((right==true)&&(key == 97||key == 75))
        return 6;//反向向左
    if((left==true)&&(key == 100||key == 77))
        return 6;//反向向右
    if(key!=224)        //根据传入的键值来判断方向
    {
        if((key == 119||key==72)&&down!=true)            //UP
        {
            up = true ;
            down = left = right = false ;
        }
        if((key == 115||key == 80)&&up!= true)            //DOWN
        {
            down = true ;
            right = up = left = false ;
        }
        if((key ==  97||key == 75)&&right !=true)            //LEFT
        {
            left = true ;
            right = up = down = false; 
        }
        if((key == 100||key == 77)&&left !=true)            //RIGHT
        {
            right = true  ;
            left = up = down = false; 
        }
        

    }
    return 0 ;
}


“if(key!=224)        //根据传入的键值来判断方向”key!=224是什么意思啊我前后看了我的代码,都找不到为什么会出现key=224啊?,想近一步探求的可以email到wszghui@ 我把全部代码发给你
搜索更多相关主题的帖子: color 
2011-05-21 09:44
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:5 
c中,执行
int key = getch();
语句后,如果按的是方向键,则 key==224 ; 如果按的不是方向键,当然 key!=224;

没有看到其它代码 ,我猜本部分代码应该是用其它按键来处理方向,类似于穿越火线中用w表示止,s表示下,a表示左d表示右差不多。

2011-05-21 11:17
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:0 
再付一个程序给你自己检测下。
程序代码:
#include "iostream"
#include "conio.h"
#include "stdlib.h"

using namespace std;

int main()
{
    int key = getch();
    //如果你按方向键,(只要是方向键,不管是上还是下还是左还是右还是pagedown……,)则下面条件为真,如果你按其它键,下面条件为假
    if (key == 224)
        cout << "key的值为224:"<<key << endl;
    else
        cout<<"key不为224:它的ascii码值为: '"<<key<<"'"<<endl;

    return 0;
} 



2011-05-21 11:23
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:5 
看getch函数说明
When reading a function key or an arrow key, each function must be called twice; the first call returns 0 or 0xE0, and the second call returns the actual key code.
2011-05-21 11:54
JackyZhang
Rank: 2
等 级:论坛游民
帖 子:82
专家分:29
注 册:2010-7-12
收藏
得分:0 
回复 4楼 rjsp
那又怎样,我还是不明白你的意思,麻烦说明白一点嘛

初生牛犊,望多多照顾!
2011-05-21 16:08
快速回复:代码中有一个地方看不懂为什么?关于按键的,大家看看吧
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025829 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved