V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
flashlight
V2EX  ›  问与答

初学 iOS 请问各位 iOS 高手这个游戏地图是如何实现的呀?

  •  
  •   flashlight · 321 天前 · 1256 次点击
    这是一个创建于 321 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我最近沉迷塞尔达于是就看到了这个 App 所以非常好奇这个带缩放的地图在 iOS 中是如何实现的。

    就是左边这个图一里面的地图,可以明显的看出来缩放之后清晰度也会变,然后地图的渲染也可以看出来是有瓦片的设计的感觉。

    看起来这个 App 是原生做的,所以我就非常想知道原生要怎么实现。希望能有有高手指点一下给一些方向,谢谢啦!


    13 条回复    2023-06-11 04:07:45 +08:00
    w88975
        1
    w88975  
       321 天前
    mapbox
    flashlight
        2
    flashlight  
    OP
       321 天前
    @w88975 谢谢你呀 mapbox 看了下没找到支持第三方的地图的功能呢
    DJCNMHG
        3
    DJCNMHG  
       321 天前
    求一个 App 名字
    beimenjun
        4
    beimenjun  
       321 天前
    其他组件看着是原生,地图部分不一定是啊……
    iOCZ
        5
    iOCZ  
       321 天前
    多重纹理吧?
    iOCZ
        6
    iOCZ  
       321 天前
    看看游戏引擎是用的啥,原生 SpriteKit
    Jeven
        7
    Jeven  
       321 天前
    请问这个 App 叫什么名字呢
    b821025551b
        8
    b821025551b  
       321 天前
    xRayyyy
        9
    xRayyyy  
       321 天前
    哈哈 我买了一个类似的老头环的地图
    做的确实很牛逼
    老头环的比这个的复杂度还要高好几倍
    ck65
        10
    ck65  
       321 天前 via iPhone
    目测 vector tiles
    exploreexe
        11
    exploreexe  
       321 天前
    可以问下 chatgpt..

    这位楼主正在寻找关于如何在 iOS 上实现游戏地图的建议,特别是那种支持缩放和清晰度变化的地图,而且他观察到这种地图看起来有瓦片的设计感​1 。

    在 iOS 中实现此类地图的一种常见方式是使用瓦片地图( tile maps )。瓦片地图由多个小的图像或“瓦片”组成,这些图像拼接在一起形成更大的地图。当用户在地图上滑动或缩放时,只有可见的瓦片才需要加载和渲染,这可以极大地优化性能。

    而且,iOS 的原生框架 SpriteKit 提供了 SKTileMapNode 类,它可以用来创建和管理瓦片地图。你可以创建不同的瓦片组,每个瓦片组都有自己的瓦片定义。然后你可以设置每个网格单元格的瓦片组,从而创建出复杂的地图。你甚至可以动态地改变每个网格单元格的瓦片组,以此来实现地图的动态修改。

    至于缩放和清晰度变化,你可以为每个瓦片创建多级的 mipmaps ,这些 mipmaps 是原始瓦片的不同分辨率版本。当地图缩放时,你可以根据当前的缩放级别选择合适的 mipmap ,这样可以保证在所有缩放级别下地图的清晰度。

    如果你的地图非常大或者需要复杂的渲染效果,你可能还需要使用一些更专业的游戏引擎,如 Unity 或 Unreal Engine 。这些引擎都提供了强大的地图编辑和渲染功能,可以满足更复杂的需求。
    bigshawn
        12
    bigshawn  
       321 天前 via iPhone
    @DJCNMHG
    @Jeven
    Z 助手
    gooin
        13
    gooin  
       321 天前 via iPhone
    leaflet openlayers 都能实现
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2611 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 01:39 · PVG 09:39 · LAX 18:39 · JFK 21:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.