自己创建一个饥荒迷宫地图
准备和说明
正版饥荒游戏(自备)、本文所有用到的程序(打包下载)
思路:先生成一个迷宫图,然后将迷宫图编译成地图矩阵,用Tiled制作地图上要生成的对象,将地图矩阵和生成对象的配置导入到DIY地图mod,进入游戏开启DIY地图mod,创建生成一个新图。
1.Python生成迷宫图
我利用的是PythonMazeSearch这个迷宫生成器来随机生成迷宫图
先安装python,可以使用 python-3.7.0-amd64.exe
文件安装,要勾选 Add Python 3.7 to PATH
再点install now
python安装完成后,以管理员身份打开cmd,输入命令 pip install pygame
安装Pygame
如果安装失败可以使用 pygame-1.9.6-cp37-cp37m-win_amd64.whl
文件安装,方法如下:
以管理员身份打开cmd,运行
pip install wheel
利用 cd 命令切换目录到
pygame-1.9.6-cp37-cp37m-win_amd64.whl
目录运行
pip install pygame-1.9.6-cp37-cp37m-win_amd64.whl
打开Python的IDLE 输入
import pygame
成功返回pygame版本号不报错即为安装成功
双击打开GameSearch.py
鼠标单击按钮选择迷宫生成算法,再单击任意键盘可以按顺序执行操作:生成迷宫,生成起点和终点,找到路径并清除地图
我们可以截图保存需要的迷宫图,默认大小应该是765x765像素,比如:
2.Python图片编译矩阵
以管理员身份打开cmd,输入命令 pip install pillow
安装pillow
将你保存的迷宫图重命名为 map.png
放到图片文件夹里,运行 DSimage.py
会生成一个 output.lua
文件,这个就是饥荒的地图矩阵,内容差不多是这样:
|
|
里面的数字编号对应一个地皮,可以自己替换,如下:
0号表示的是海,打圈的编号也都不是路地,建议不要用打圈的编号直接用0号
3.使用Tiled制作静态布局
先安装Mod Tools
打开steam–库–工具–Don’t Starve Mod Tools–下载安装–启动–Launch Tiled–开始
打开后的界面
创建一个新文件,地图大小为51x51,块大小为64x64像素
然后地图–添加外部图块–找到 ground.tsx
文件打开(..\Steam\steamapps\common\Don’t Starve Mod Tools\mod_tools\Tiled\dont_starve\ground.tsx)
右下角会显示可用的地皮,点击图章刷工具(快捷键B),再选择你要的地皮,点击到你想要放的位置即可,如果你需要全部填满可以使用填充工具(快捷键F),因为我们上面已经通过Python图片编译出了地皮矩阵所以我们这边就不填地皮了,当然如果你自己填也是ok的,配置文件里也会生成对应的矩阵,我这边主要是需要物品对象的配置
这个地皮顺序对应上面编号显示的那个实图
选择图层–添加对象层–选择矩形工具(快捷键R)–点击到你想要放的位置–右键矩形框–对象属性–填入物品代码–确定
右上角的窗口里,可以看到对象层
地图里必须要有传送门和出生点,并且不能在海上(坐标要在陆地地皮范围内),否则游戏无法进入。
传送门: multiplayer_portal
出生点: spawnpoint_master
其他的物品代码可以自己搜索,太多了,我就不贴出来了
按照你的需要添加好所有对象后,我们就可以导出文件配置了,点文件–导出为–保存为 .lua
文件即可
4.配置安装DIY地图mod
打开 diy地图mod\scripts\map\static_layouts\ my_default_start.lua
这个文件
修改成与你要创建的地图对应的边界值,比如我创建的是51x51
将上面第2步里生成的 output.lua
文件里的data部分替换掉my_default_start.lua
这个文件里的data部分
将上面第3步里生成的 .lua
文件里的objects部分替换掉my_default_start.lua
这个文件里的objects部分
保存文件
将整个diy地图mod文件夹复制到 ..\Steam\steamapps\common\Don't Starve Together\mods\
文件夹下,打开饥荒游戏在mod选项里的本地mod里开启diy地图mod,新开个档就可以啦,记得把洞穴移除掉~
成品展示
参考文章
[1]. PythonMazeSearch
[2]. 19-10-01【教程】如何制作一张地图
[3]. 【教程】使用Tiled制作静态布局(Static Layouts)
[4]. 【地图画教程】PS处理图片技巧
[5]. 【饥荒】Python图片编译矩阵
[6]. 【饥荒】地图编辑教程