随机地图后, 节点滑动显示的问题, 求教

我这边有一个需求.
有一个界面, 主要分为三个节点, 上中下. 上下两个节点固定大小位置不变, 中间的节点是一个地图.
比如屏幕大小1080x1920. 上面节点为 1080x300, 下面的节点也是1080x300, 则中间剩余的是显示地图1080x1320.

中间的地图节点, 是随机生成的多张地图结合,会有各种随机路径的情况.
单个地图就刚好是1080x1320. 所以玩家左右上下滑动切换的时候, 是整个1080x1320 进行移动切换显示, 并且是平滑移动式的切换过去.

还有一个小地图预览功能, 打开之后, 可以直接点击其中一个地图直接就跳转过去显示.

之前只是写过一些UI界面, 目前这个需求, 我只实现上下左右切换的话, 就只需要移动方向改变中间节点的坐标, 就可以完成.
但是有小地图预览功能的话, 来回切换后坐标其实是已经乱了, 直接切换到某一个地图就比较麻烦.

所以是不是用世界坐标的转换之类的, 就很容易实现了呢?
但是之前确实没搞过, 请问大佬们, 这种要怎么实现呢?

看的不是很懂,这个跟pageview有区别吗

跟翻页还是不一样的吧.
比如这种地图随机生成后, 可以是 L形的, 刚开始只能向下翻, 到转折点的时候, 能向右翻.
并且可以点开小地图. 直接选择其中某个地图进去.
当前问题是有两个节点不变, 只改变其中一个中间节点, 这个我不太懂怎么搞.

有参考的游戏吗

你可以考虑用一个摄像机来单独拍摄地图的可视渔区,移动也就是变相移动摄像机,做个边缘判定,到边缘不许超出边界,然后吧这个摄像机的画面,合到UI上

极简地下城, 你可以搜一下. 里面的副本那样的.

确实有想过. 但这个超出了我目前的能力了. 需要研究一下.

你可以用index标记地图,创建地图的时候用一个对象包装可切换地图index,切换地图只改变中间节点的贴图,刷新界面,并不需要改变坐标
比如地图是L型
1
2
34
那么对象是
{
1:[2],
2:[1,3],
3:[2,4],
4:[3]
}

没有看懂呢
主要是希望在上下左右滑动的时候, 是平滑的, 并不是一下子就刷新的.
比如, 左滑, 能看到之前的那个地图也向左滑并且右边的新地图, 随之而来.

如果只是操作坐标的话, 我可以让中间节点作为一个单独的来进行坐标更改, 从而达到滑动的效果.
但是如果我想直接跳到某个地图, 我的那个实现方式就会非常复杂了的感觉. 所以才来问一下, 有没有什么其他方式可以实现.

跳转某个地图也需要平滑过度吗?

不需要的, 跳转那个, 直接过去就行. 只是平时是需要平滑的

你现在想法是,地图创建的时候,就把所有的地图都加载好放在场景里吗?

感觉你做的应该是一进去就把所有地图都创建出来了,然后你现在跳转地图计算坐标才会很麻烦。
但是大地图一般来说都是只创建当前显示的那一页,顶多加上周围几页,不会创建全部,没必要,额外消耗太多内存。
你需要维护一个类似这样的结构

[1]: {left: -1, right: -1, top: -1, bottom: 2},
[2]: {left: -1, right: 3, top: 2, bottom: -1},
[3]: {left: 2, right: -1, top: -1, bottom: 4},
....

记录每页地图,上下左右是否有其他页地图,然后

showMap(mapId) {
    removeAllChildren()
    createMapSprite(mapId)
    checkCreateLeftMap()
    ....
    checkCreateBottomMap()
}

然后上下左右滑动就是按照你之前做的移动坐标,只是移动完要重新调用showMap更新周围地图页

是的, 肯定是在进入的时候, 所有的内容都会加载完毕. 因为要有小地图, 而且总的地图数量也不多. 最多就十来个的样子. 消耗不大.

你可以参考楼上的回复
最好的做法是只渲染当前地图与邻近的地图。如果内容不多,可以在玩家滑动的时候再渲染下一个再做滑动操作,这样性能才是最好的。
小地图完全可以依赖于数据做显示,而不是依赖你所创建的地图。

好像是可以的, 你的思路就是, 并不存在于固定坐标和位置, 只有当前地图和周围的地图的概念.
所以只考虑当前地图和周围的信息就可以了.
这样小地图切换, 因为不用平滑移动, 所以直接切换刷新过去就行了.
当前地图的数据层面, 也可以保存在另外的数据结构里.
感谢, 我搞一下试试.