当前位置: 首页 > news >正文

C#开发的OpenRA游戏的加载地图流程

C#开发的OpenRA游戏的加载地图流程

OpenRA游戏里,地图是一个很关键的数据,
因为地图里包括了地面状态,地面上建筑物状态,
还有玩家在地图上的布局情况,以及各种活动限制的条件。

在OpenRA里,需要把地图目录:OpenRA\mods\cnc\maps 里所有的文件进行加载,
并且保存在缓存队列。由于缓存队列采用MAP容器保存,
需要把每一个地图计算一串唯一的Key出来,
因此调用函数:
public static string ComputeUID(IReadOnlyPackage package)
ComputeUID是实现计算一个地图的HASH值。
比如文件valley-of-gold.oramap,计算出来的HASH值是:"387dc690871685a44b10e6d625ad44b6f1b2d47b"。
后面地图的选择和使用,就可以使用这串ID来表示地图了。

所有的地图先在类MapCache里调用函数LoadMaps()进行加载,以便保存到缓冲队列。
接着在游戏开始之前,显示所有地图,让玩家对地图进行选择。如果玩家选择好了地图,
就会发送给服务器,服务器再同步到所有其它玩家。
这时候,就可以拿到地图的ID,就可以开始新的游戏:
Game.StartGame(orderManager.LobbyInfo.GlobalSettings.Map, WorldType.Regular);
orderManager.LobbyInfo.GlobalSettings.Map就是地图的HASH值。

紧接着会在游戏开始函数StartGame()里加载地图的数据:
map =

http://www.lryc.cn/news/64382.html

相关文章:

  • python ast 详解与用法
  • Go语言开发小技巧易错点100例(七)
  • 爬虫为什么需要ip
  • RabbitMQ-保证消息可靠性
  • Python教程——Python本地环境安装
  • “智慧交通”转型升级+创新发展策略
  • 华为OD机试 - 开放日活动、取出尽量少的球(Python)
  • 一些关于单链表的操作
  • CTF-PHP反序列化漏洞2-利用魔法函数
  • Doris(23):Doris的函数—字符串函数
  • 01-Shiro550漏洞流程
  • 《程序员面试金典(第6版)》面试题 16.08. 整数的英语表示
  • ChatGPT技术原理 第四章:Transformer模型
  • 基于redis和threadlocal实现登录状态校验和拦截
  • 14-6-进程间通信-信号量
  • 《中国教育报》投稿邮箱编辑部征稿
  • Photoshop如何使用绘画和图像修饰之实例演示?
  • 【C++】布隆过滤器
  • 功能齐全的 ESP32 智能手表,具有多个表盘、心率传感器硬件设计
  • 微服务不是本地部署的最佳选择,不妨试试模块化单体
  • 解读Toolformer
  • FCOS3D Fully Convolutional One-Stage Monocular 3D Object Detection 论文学习
  • Xpath学习笔记
  • 网络编程之 Socket 套接字(使用数据报套接字和流套接字分别实现一个小程序(附源码))
  • What Are Docker Image Layers?
  • 范数详解-torch.linalg.norm计算实例
  • postgresdb备份脚本
  • MATLAB程序员投简历的技巧解析,如何写出有亮点的简历
  • 颜色空间转换RGB-YCbCr
  • 年薪40万程序员辞职炒股,把一年工资亏光了,得了抑郁症,太惨了