3.9 KiB
3.9 KiB
World Map Engine——在画好的地图上往来于各地之间
World Map Engine 显示一幅全屏的游戏世界图景,上面标着各个地点。玩家打开地图,选中一个地点,然后前往那里:游戏切换到该地点的场景。剧本可以随剧情推进打开、关闭、隐藏或重新显示地点,游戏会保存这些变化。
Cthangover 用的就是它。它不同于 RPG World 的图块地图:世界地图是一张带可点击区域的图,前往即切换场景;图块地图则是一张格子,英雄一格一格地走。
游戏中的地图
点击工具栏上的地图图标即可打开。
- 地点是画在图片之上的区域;斜线阴影标出它们。有些地点还有带图标的圆形徽章。
- 图例:绿色——你在这里,金色——可前往,灰色——已关闭。
- 点击一个地点可以打开它的卡片:状态、描述和 前往 按钮。Esc 或 × 关闭地图。
前往会把游戏切换到该地点的场景:
一个地点处于关闭状态——卡片显示“道路尚未开放。”且没有“前往”按钮——的情况有:剧本把它关了、它没有场景,或者它引用的场景在当前玩的游戏里不存在。
给游戏添加世界地图
游戏需要在它的 mod 里有两样东西:
- 图片——一个名为
map的背景(例如backgrounds/map.png)。 - 地点——
map/文件夹里的 JSON 文件。所有位置都是图片宽高的比例,从 0 到 1,因此地图在任何尺寸下都能用。
这是 Cthangover 的城镇入口(精简版):
{
"Items": [
{
"ID": "town_entry",
"points": [[0.7099, 0.2493], [0.7334, 0.2630], [0.7348, 0.2906], [0.7091, 0.3429], [0.6974, 0.3264]],
"title": "",
"scene": "town_entry",
"description": "mapzone/town_entry/info",
"locked": false,
"hidden": false
},
{
"ID": "town_entry_label",
"points": [],
"title": "mapzone/town_entry",
"label_pos": [0.7246, 0.2163]
}
]
}
points——可点击区域的轮廓。scene——“前往”要切换到的逻辑场景。title、description——翻译键;title 是地点在卡片和徽章上显示的名字。image和image_pos——图标及其位置,用来在地点上显示圆形徽章。label_pos——直接摆在地图上的名字。只有 title 和标签位置(如town_entry_label)的区域是一个名字,不是地点:点不了。locked——开局时关闭;hidden——开局时不显示。
Cthangover 把地点名字放在单独的标签区域里,地点自己的 title 留空——所以上面这张卡片顶部没有名字。
世界地图也可以用 Editor Tools 的地图编辑器来画和改。
用剧本改变地点
action map.open_zone zone_id=town_entry
action map.close_zone zone_id=town_entry
action map.show_zone zone_id=town_entry
action map.hide_zone zone_id=town_entry
改动会存进存档并在读档后保留;新游戏则从 JSON 里的值开始。
出问题了?
- "地图不可用"。 游戏的任何 mod 都没有名为
map的背景。 - 进不去一个地点。 它的
scene为空或拼写有误,或者剧本把它关了。 - 地点位置不对。 位置是图片的比例(0–1),不是像素。


