OGRE中按键的灵活控制

+++++++++++++++++++++++++++++++++++++++++++++

++++++++++++     OGRE中按键的灵活控制  +++++++++++

+++++++++++++++++++++++++++++++++++++++++++++

1.    单键:

由下面的两个函数可以得到按键按下和释放时的状态。

//当键盘按键按下

       bool onKeyPressed(const KeyEvent & evt);

      

       //当键盘按键释放

       bool onKeyReleased(const KeyEvent & evt);

      

evt.getKey()可以得到该键所对应的keycode,如果想进一步看到其10进制的制。

可以能过设置一个     unsigned  long  _keyCode;变量

        _keyCode    &= evt.getKey();//如此就能找到其对应的10进制了。

注:如果上面的 _keyCode 初始值为0Xff,而当按下键和释放键时,均用 keyCode ^= evt.getKey()   ^异或,相同为0,不同为1)。最终按下后,keyCode = 0;

 

按键的keycode表:

 

2.    双键:

当你按下了D键,还没有释放,再去按A键,然后随便释放AD这种情况。也就是两个键的组合按下或释放。

假设:

右键: D   0000  0001  0x1

左键: A   0000  0010   0x2

 当你第一次按下键时,用一个变量S(初始为0xff)来“与该键的对应值。以后就

        当你释放时,就用变量S来和该键“异或“。

       Eg当你第一次按下了D

         S  &=D(相当于把D付值给了SS=0x1

            再按下A

           S  = A S = 0X3);

            若释放了D

             S ^=D  (S =0X2).也就是说此时,还有A没有被释放掉。

            若释放了A

             S ^=A  (S =0X1).也就是说此时,还有D没有被释放掉。

             AD都释放掉了。

             S   = 0x00;

 

 

  

3.    多键:

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值