适配模式(Fit Width、Fit Height) 在微信小游戏上按钮的触点有有严重的偏移

  • Creator 版本:v1.9.1

  • 微信开发工具版本:1.02.1808080

同时设置了Fit Width、Fit Height(这样问题较为明显),在Canvas下的Button组件,按钮的触发事件点与按钮的位置存在明显的偏移。在浏览器和模拟器上按钮的触点均没有问题,唯独是构建运行到微信开发工具后,按钮的位置与按钮触点的位置存在明显的偏移。

以下链接都有类似的问题,就没有解决吗???急…

http://forum.cocos.com/t/topic/63939
http://forum.cocos.com/t/button/63935
http://forum.cocos.com/t/topic/63333
http://forum.cocos.com/t/cocos2dx/31027

按钮触点区为何与按钮的显示位置偏移这么多????需要放弃适配模式换取兼容微信小程序 ???在线等。。。
求大佬们解答…

没试过Fit Width、Fit Height 都选上
这样能上线,有黑边能上线?????
只选其中一个肯定是可以的

一个也是有点偏移的哦,只不过我为了说明,2个都选上,这样比较明显。

试了下,只选一个,好像是真没问题,可能是我之前搞错了:joy:

不知道你是怎么弄的。

我们的非常精准,这是运行在微信模拟器上的

你们的Fit Width、Fit Height模式,是不是只选了一个呢?

肯定啊。
都选了,不就变形了吗
而且都选上,应该是宽高一起拉,应该也不会出现这种问题才对的

那可能是都选上导致了偏移,刚巧我测试的分辨率差别不大,察觉不到变形。

但都选上的确有明显的偏移,是按钮的显示和触点区是分开的。

##这里有视频demo,比较明显
http://forum.cocos.com/t/topic/63939

因为前不久用 Creator 做 H5 游戏的时候,设置
cc.view.setDesignResolutionSize(1280,720,cc.ResolutionPolicy.EXACT_FIT);
遇到了同样的问题(游戏视图随浏览器界面大小而正常变化,但按钮的点击是有偏移的)。

今天想起来又看了 cocos2d-x 项目的代码,
应该也是 glview->setDesignResolutionSize(480, 800, ResolutionPolicy::EXACT_FIT); 搞的鬼了。
我还发过帖子在论坛里问过:
https://forum.cocos.com/t/ios/69948

求回复啊 @jare

我在手机浏览器环境下执行 document.querySelector(’#GameCanvas’).style.height = window.innerHeight + ‘px’ 后,也遇到了按钮点击区域错位的问题

我最近也遇到这个问题,请问你有解决方案了吗

我也碰到了这个问题,creator 版本3.4.2
在项目设置里,只要把适配屏幕宽度选中,就会出现这个问题。
单独选中适配屏幕高度选中,或者都不选中,这个问题时不存在

这个问题我解决了,是由于屏幕适配选择了固定宽度产生的。
现在都是手机端,宽度固定也是常见的现象。选择固定宽度。
解决方案是:
1.调整摄像机的距离。camera组件的OrthoHeght 的数值,等于屏幕高度的一半。
2.整个屏幕的组件的尺寸,使用程序修改成动态计算出来的高度尺寸。
举个例子:
在项目设置里设置了设计宽度和设计高度是 540x1200
那在540x1200手机上是不会产生问题的。而在540x1000的手机会产生点击偏移问题。
1.在程序中将原来组件为540x1200的组件修改为540x1000
2.在将camera的OrthoHeght由原来的600改成500 计算方法是:
//let 500 = 1000 /(540/540)
let designHeight = screenHeight / (screenWidth / designWidth);
过一段时间自己就忘了,写到论坛里做备注,能帮到其他人更好。
补充一下:
这个问题产生的原因是:
摄像机的拍摄的画面 与 组件按钮的位置 没有对上产生的。
要解决的是调整摄像机拍摄距离的问题。具体可以研究下摄像机这块的逻辑就明白了。
至于要用程序来调整组件的高度的原因是,需要动态适配屏幕高度,解决拍摄产生黑边问题。

2赞