有懂安卓系统机制的大佬吗?求帮助
gamemaker吧
全部回复
仅看楼主
level 13
Venus🔥 楼主
求分析,在安卓设备上写了一串检测手柄的代码,最近遇到了非常奇怪的问题(手柄为非蓝牙手柄),
疑点1:
global.connect=1的情况下居然有的手机能控制而有的手机不能控制,然后我又调出来了global.pad的数据,发现无论用什么手柄global.pad都等于0,而在电脑端等于4,所以我就怀疑可能手机某种设置原因或者权限原因把设备端口0跳过去了才导致控制无效,如果不是这个原因我真的搞不明白什么原因能导致这种情况(我确定手柄已经接上手机,并且能有效控制其他手机游戏)
疑点2:
在手柄控制gms2游戏有效的情况下,如果中途拔出手柄再按上就会手柄失灵,然而电脑端不会这样,这个现象又是怎么造成的呢?
下面第一张图是关于手柄连接的代码,我把手柄连接的代码放在了最开始的房间内,第二张图是检测连接端口的代码,player和检测手柄的代码不在一个房间内。
2021年12月31日 03点12分 1
level 13
Venus🔥 楼主
解决了,又没完全解决
疑点1原理:刚插入的手柄被之前连接过的蓝牙给占用了(就算现在没开蓝牙也不行,并且有些手机恢复出厂设置也不管用),安卓会优先把蓝牙设置成端口0
疑点2原理:拔出来再插上端口会发生改变,所以就不管用了。
解决办法:在游戏一开始调用函数
gamepad_remove_mapping(0),疑点1的情况就会解决(这仅限于之前就连过一个设备的情况,如果之前连过多个设备可能就会都被记入进去,然后得一个一个的移除)
疑点二解决办法:玩游戏时别拔不就行了,完美解决[阴险]
2022年01月06日 10点01分 4
1