【Dear imgui】ImGui在Android中的多点触摸的解决过程

DearImGui不支持多点触摸是DearImGui的一个硬伤,最近刚好要处理这个问题。 但是知道写这个博客为止,还是没有完美的解决这个问题,写这个博客的目的只是为了表述一下自己的实现过程,以及最后不完美的解决方案。 DearImGui

DearImGui不支持多点触摸是DearImGui的一个硬伤,最近刚好要处理这个问题。

但是知道写这个博客为止,还是没有完美的解决这个问题,写这个博客的目的只是为了表述一下自己的实现过程,以及最后不完美的解决方案。

DearImGui一直为PC实现的框架,让后端程序员能够专注于逻辑的书写,使用简单的逻辑就能实现界面。

但是PC和移动端有一个很大的区别就是输入模式的差别,在PC上,屏幕需要响应的就只有一个鼠标,但是在移动端上面,就牵扯到一个多点触摸屏幕的时候,多点触摸时候,相当于PC屏幕上有两个鼠标在同时的工作。

我需要在移动手机上实现的是左手在滑动摇杆的同时,右手需要进行点击不同的按钮进行NPC技能的响应,就和现在市面上的游戏一样,但是如果遥感和技能按钮都是用DearImGui来实现的话,两者是不能同时的响应的。

我最后的解决办法是:遥感使用DearImGui进行绘制以及响应,技能按钮使用的是Android原生的Java代码以及XML进行的绘制和响应。

中间我有试过SDL,SDL可以支持多点触控,也支持多平台,但是我在最后一步卡住了:

SDL需要创建一个自己的窗口,然后在窗口里面画一个按钮,我最初的想法是,使用SDL创建一个窗口,这个窗口里面就只有遥感按钮和技能按钮,然后将窗口的边全部隐藏,也就是设置成:没有描述的一个窗口,然后将窗口的背景设置为透明。这样玩家在屏幕上看见的就只有遥感和技能按钮,但是我只在SDL中找了一个设置全部透明度的方法,也就是使用了这个接口之后,不仅窗口会变透明,里面的所有组件也变的透明了,不能单独的将窗口的背景设置为透明。

我也尝试过:将窗口的RGBA颜色值设置成透明度为255(全透明)的方法,但是显示出来的是一个黑色的窗口。

PS:也许使用SDL去创建Android的GLSurfaceView,也就是将整个Android上的窗口都交给SDL去管理,是一种解决办法,但是我已经没有时间去试了。

为什么摇杆使用DearImGui但是技能按钮使用的是Java,是因为我想使各个平台(Android/iOS)代码尽量的少,而可以跨平台的DearImGui代码尽量的多。

发布者:admin,转转请注明出处:http://www.yc00.com/web/1754942391a5218367.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信