DearImGui不支持多点触摸是DearImGui的一个硬伤,最近刚好要处理这个问题。
但是知道写这个博客为止,还是没有完美的解决这个问题,写这个博客的目的只是为了表述一下自己的实现过程,以及最后不完美的解决方案。
DearImGui一直为PC实现的框架,让后端程序员能够专注于逻辑的书写,使用简单的逻辑就能实现界面。
但是PC和移动端有一个很大的区别就是输入模式的差别,在PC上,屏幕需要响应的就只有一个鼠标,但是在移动端上面,就牵扯到一个多点触摸屏幕的时候,多点触摸时候,相当于PC屏幕上有两个鼠标在同时的工作。
我需要在移动手机上实现的是左手在滑动摇杆的同时,右手需要进行点击不同的按钮进行NPC技能的响应,就和现在市面上的游戏一样,但是如果遥感和技能按钮都是用DearImGui来实现的话,两者是不能同时的响应的。
我最后的解决办法是:遥感使用DearImGui进行绘制以及响应,技能按钮使用的是Android原生的Java代码以及XML进行的绘制和响应。
中间我有试过SDL,SDL可以支持多点触控,也支持多平台,但是我在最后一步卡住了:
SDL需要创建一个自己的窗口,然后在窗口里面画一个按钮,我最初的想法是,使用SDL创建一个窗口,这个窗口里面就只有遥感按钮和技能按钮,然后将窗口的边全部隐藏,也就是设置成:没有描述的一个窗口,然后将窗口的背景设置为透明。这样玩家在屏幕上看见的就只有遥感和技能按钮,但是我只在SDL中找了一个设置全部透明度的方法,也就是使用了这个接口之后,不仅窗口会变透明,里面的所有组件也变的透明了,不能单独的将窗口的背景设置为透明。
我也