这个还需要其他方法求证,也可能是我电脑的问题?
最近重新搞起rmxp,用66rpg的经典全键盘代码(调用的是WIN32API,封装无法进入查看)的时候,发现扩展出来的按键有一部分在其他界面的时候按下,返回主界面(Scene_Map)的时候又生效了。
在多次加判断条件无效后发现,居然是按下以后键值没有复位。WIN32API的作用是对应键位按下以后返回一个非零值(实测正常为32768)返回之后理应置零,实测是移位(-32768),然而非正常的键位按下以后返回32769,-32768之后仍不为零,导致下次返回值不为零判断依然生效。
这个问题似乎只要多一个指令周期就可以完成置零,但是经典全键盘代码只有一条返回指令。更简单的解决方法就是把返回的判断条件为非零改为>一个数(如100)。
但我只有一台电脑没有其他测试条件,还不知道有没有其他影响因素,WIN32API又进不去看不了。手机发帖暂无代码截图
最近重新搞起rmxp,用66rpg的经典全键盘代码(调用的是WIN32API,封装无法进入查看)的时候,发现扩展出来的按键有一部分在其他界面的时候按下,返回主界面(Scene_Map)的时候又生效了。
在多次加判断条件无效后发现,居然是按下以后键值没有复位。WIN32API的作用是对应键位按下以后返回一个非零值(实测正常为32768)返回之后理应置零,实测是移位(-32768),然而非正常的键位按下以后返回32769,-32768之后仍不为零,导致下次返回值不为零判断依然生效。
这个问题似乎只要多一个指令周期就可以完成置零,但是经典全键盘代码只有一条返回指令。更简单的解决方法就是把返回的判断条件为非零改为>一个数(如100)。
但我只有一台电脑没有其他测试条件,还不知道有没有其他影响因素,WIN32API又进不去看不了。手机发帖暂无代码截图