我正在尝试在 Cocos2D 中开发一个可滚动的磁贴地图,它使用UIPanGestureRecognizer
进行肮脏的工作,但在开发它时,偶然发现了一些我想要的问题要求建议。
基本滚动管理工作正常,精确而准确,并通过将平移手势管理器识别的翻译添加到地图的图块来工作。问题是地图很大,我只是画了一个小视口,而我想管它就像它可以滚动而没有任何问题。
我在想的是,只要整行或列离开可见屏幕,它就会移动到另一侧,相应的纹理部分会更新(我完全使用{{ 1}}),这样它将不断更新视口以使整个工作正常。这看起来很好,但我发现在处理何时移动行/列时有很多问题,如何跟踪这个问题(例如,当pan从前到后改变方向时)以及许多让我认为我应该的细节找到更好的方法。
我的问题有一个共同的解决方案吗?那就是:管理一个tilemap的可滚动视口,它应该在整个地图上移动,这样最终用户就好像地图是无限的一样。
提前致谢
答案 0 :(得分:1)
我通过开发一个视口来解决我的问题,其中行和列有效地从左侧移动到右侧以及从顶侧到底侧。
当一个新的列或行进入视口时,这是自动完成的,它是通过将绘制的视口扩展到真实的视口上,其数量足以避免给用户带来任何图形问题。