微软,还我Input.Touch模块
在XNA4 CTP 的时候,Input.Touch模块给我留下了很好的印象。
我已经全面抛弃了键盘鼠标的事件处理,投入touch的怀抱。
因为我是把鼠标模拟成一个touch点,而直接touch屏幕,如果touch事件无响应也会被转成一个鼠标事件,又转回模拟的touch点。
所以我一直没有发现 XNA4 BETA真的把Input.touch给阉割了。
这是无法接受的残酷事实,
我立即动刀,从还没重装的HP TX2z上剥出来Input.Touch 和 XNA.Framework 的 dll,反编译,修改,测试,折腾了好久。
终于Input.Touch又回来了
先可耻的利用反编译来分析到底发生了什么
大概看懂了以后,就动刀,动刀,再动刀
把framework和CTP版XNA4 的input.touch的部分模块组合成一个项目
使用稍微多了一点点东西,因为Game模块肯定也有点儿猫腻,只需要一行初始化就可以解决,所以我没有去碰Game模块
使用时不需要原来的Input.Touch模块,带上我们的模块就行了
值得一提的是 这个函数我也进行了修改,可以返回真实的多点触摸数,原来是固定返回4。
这是唯一多出来的一行:
TouchPanel.WindowHandle = this.Window.Handle;
这个原先的Game模块肯定是自动初始化的,我们现在就加一行,不用搞Game模块,多么快乐啊。
问题得以妥善的解决,非常开心。
附此越轨项目svn地址,至此文毕,仍然没有理解微软要阉割此功能的理由。有多点触摸屏幕的电脑难道不是会越来越多,为什么要CTP有,BETA却阉割掉了,希望不会正式版又恢复这个功能,那我今晚这趟折腾为哪般啊。