gpt4 book ai didi

ios - 在 MKMapView 上同步 COCOS2D 层

转载 作者:行者123 更新时间:2023-12-01 16:55:54 25 4
gpt4 key购买 nike

我正在尝试将 cocos2D 图层对象与 map 同步,我设法通过将 glView 调整为 MKMapView 的 visibleMapRect 来使其工作。我可以缩放、移动,我的对象跟随 map 。但是,MKMapView 和 cocos2D 层之间存在一个小而烦人的延迟。

我在每个显示循环中同步它。

方法:

1) 检索 MKMapView.visibleMapRect

2)设置glViewPort

3) 进行正交投影以将我的图层调整为 MapView。

我已经尝试过其他方法,比如用触摸移动 cocos2D 层,然后根据触摸移动我的 map 坐标,仍然滞后。

即使禁用 MapView 的加速和减速也不会消除滞后。

谢谢。

最佳答案

在黑暗中射击:我们知道 iOS 设备在缩放时使用优化来加速渲染。这对于 Safari 浏览器来说是正确的,当您放大时,实际上只放大了当前显示为浏览器窗口内容的图像。只有在您停止捏合 Action 后,设备才会更新 View 。

您会在旧设备上通过文本特别看到这一点。当设备以新的比例因子重新渲染内容时,文本突然再次变得清晰明快。我相信在 MKMapView 中进行了相同的优化。

您可能需要检查 visibleMapRect 值是否在缩放期间实际更新,以及它们是否准确反射(reflect)当前缩放级别。

我可以想象的另一个问题是 MKMapView + Cocos2D 的帧率很低。尤其是缩放可能会消耗大量 CPU 资源。您可能希望启用 cocos2d FPS 显示以查看帧速率。

在 cocos2d 中允许平滑 ScrollView (尤其是 UITableView 等复杂 View )所必需的另一个技巧是降低 cocos2d 的最大帧率(animationInterval)和/或在单独的线程上运行 gl View 的渲染。您的问题可能只是此问题的变体:UIScrollView pauses NSTimer until scrolling finishes

请注意,DisplayLink Controller 也会发生这种情况。 this question中的信息为我做了伎俩。

关于ios - 在 MKMapView 上同步 COCOS2D 层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11862007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com