主页面是主图,可无限滚动,999*999个格子,而数据还要从服务器实时读取,而右上角的蓝色小地图,要显示所有玩家的大致方位。
先不说这个无限滚动+数据加载。就单单这个显示所有玩家方位画点就没想到理想的框架,不能有太多的数据库操作,当然,后台有数据缓存系统。
各位看看这样的无限滚动如果是你们会怎么设计,实时加载数据的事件又通过什么指标触发呢,还要考虑到性能优化,内存占用不能爆
前端存地形,地图上的节点在拖动停止n毫秒后获取屏幕内的地图块数组对应的玩家城市数据,我上班做的第一个游戏就这种,后台怎么实现的不清楚
额 用tilemap 魔改下就好了, 想要无限拉的话 你就做个 4*4的 图块的 也可以 实际 多少都无所谓, 出边届 就补齐就是了
比如 (-1, 0) = 》 (3, 0) 这么 转化下就行
你这个东西 如果 数据量大 简单点就用灯塔,到哪个点就获取 相应的面积, 如果 用protobuf 数据都不用压缩 , 不用的话 自己压缩下, 如果 交互太频繁 就 自己 再加个 验证, 比如 每个 地块信息, 算个 md5值, 算完再和服务器 比对, 比对完, 再看 需要 发给前台 哪些地块的数据
给你提供个思路

假设(0,0)是自身位置 每个格子代表一个30*30的tiledmap tiledmap文件名为0_0.tmx 当玩家在(0,0)格子时就加载周围8格的tiledmap数据
服务器上的每个玩家方位也按这种方式储存,例如play1[(0,0),(5,5)],表示这个玩家在0_0.txm的(5,5)格子中 当玩家方位需要迁移或者删除直接修改该数据 然后每天或每周更新本地数据
接着从服务器上读取当前格子以及周围8格的数据 拿到这些数据就可以动态创建tmx文件并保存到本地 这样每个位置只需要向服务器请求一次就行
当移动到(1,1)格时就把之前的数据更换tmx文件
至于右上角的小地图 建议只显示当前位置的八格以内的数据 其他位置用战争迷雾遮挡
如果是我的话,设计滚轴可以先确定一个中心位置,记录中心位置的节点坐标,每当拖动地图,中心位置的节点就会改变,计算拖动前和拖动后中心节点的坐标偏移量发给服务器,服务器根据偏移的量发送需要补充的节点数据。画点也可以先确定一个玩家的位置,然后根据玩家位置之间的偏移量确定其它玩家位置。
可以限定显示的格子,然后根据滑动的方向进行判断,将不显示的格子移动位置,刷新新的格子信息
