家人们介四怎么肥四哇

我是一个小白,自己尝试做了一下飞机大战,游戏是做出来,但是出现了很奇怪的问题。

这个是我在最新版本的Edge浏览器运行的结果。就出现了鼠标和飞机错位的情况,但是我把浏览器缩小一点后,这种错位又可以恢复。

这个是我使用CocosCreator3.7.1版本的编辑器运行的游戏情况,这个是正常的。(视频转gif出问题了,呜呜呜呜呜呜呜)这种情况下鼠标和飞机是正常的。

我在脚本中设定飞机的坐标,直接就是得到此时鼠标的坐标,之后对坐标进行边界判断,之后将边界判断后的坐标设为飞机的世界坐标。

这咋子搞撒。。。。

你刷新一下按F12选个机型切换横竖屏看看

适配问题,在你设计分辨率下应该是对的,但是其他分辨率就会偏移,我记得坐标好像转换下本地坐标就行= =

您好,好像问题还是没有解决,还是会出现偏移的现象

其中changePosition函数是用来边界检验的。这样转化为本地坐标之后还是会出现浏览器浏览错位的情况

嗯嗯好滴,谢谢您啦。

刚刚我试过了,但是我切换了横屏,但是好像是更严重了的亚子。换了机型还是会出现这样的情况。

页面打开后,浏览器窗口大小变化了吗,如果是手动缩放了浏览器窗口,坐标可能对不上,刷新一下就好了

谢谢您的回复,浏览器没有缩放,反而,打开游戏之后对页面进行缩小,这样坐标就可以对上了。

我怎么感觉你转换的坐标没保存,最后赋值还是原始没转换的坐标。我这查看api的打不开,可能需要保存下convertToNodeSpaceAR的返回值吧,试试看

试下这样,cameraUI为全局相机
image

1赞

您好,convertToNodeSpaceAR这个函数的第二个参数就是输出转化后的坐标,

按照您的说法,


转化了之后,还是会出现错位的情况

您好,我也尝试过了您的做法,但是改过之后飞机都不移动了,这是我的代码,您看下

你的触摸节点还有飞机节点是怎么适配的呀

谢谢您的回复


您看一下,hero是飞机节点。触摸事件直接加载了hero节点上。

你试下定义一个新的node(或者就用canvas的node),widget组件改成全屏适配
image
然后用这个node来触摸试试

您好,我已经在hero节点中添加了这个组件。您看以下

你别再hero上加 :joy:

这个组件是我之前就加过的,Canvas上也有这个组件的

触摸事件你改成canvas上的node试试

您的意思是说,添加全局监听吗?这个我试过的呀,是不对的啊,在Canvas上添加触摸事件的监听就是添加全局监听呀,使用input进行添加的。如果是这样话问题是还在的。

方便发个demo么