随记(17)场景AOI、游戏场景

本文介绍了游戏中的场景AOI(区域-of-interest)管理,包括九宫格概念及移动计算,详细阐述了玩家移动时如何通知不同区域的玩家。此外,还探讨了游戏场景的启动流程、机制,以及玩家加载和移动时的广播策略,涉及到全场景广播和九宫格广播两种方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 场景AOI

  • 1)九宫格概念,参考:http://blog.chinaunix.net/uid-429659-id-5658868.html。
  • 2)九宫格A -----移动-----> 九宫格B,
    • 玩家每次移动都计算玩家当前坐标所在的格子,得到当前所在的九宫,这样就有新/旧九宫,也就有差集、交集、反差集
    • 根据当前玩家坐标得到当前格子编号的公式
      (Y-Y地图坐标原点)div 格子的宽度 * 一行的格子数 + (X-X坐标原点)div 格子的长度 + 1
      
    • 根据当前玩家的格子编号得到九宫的公式
      [XY,XY-1,XY+1,XY-一行的格子数,XY+一行的格子数,XY-一行的格子数-1XY-一行的格子数+1XY+一行的格子数-1XY+一行的格子数+1]
      
    • 对属于九宫集合A,不属于九宫集合B的玩家们,发送当前玩家离开场景协议
      [XY || XY <- OldArea, lists:member(XY, NArea) == false]
      
    • 对属于九宫集合B,不属于九宫集合A的玩家们,发送当前玩家进入场景协议
      [XY || XY <- NArea
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值