我是2019年年底接触到世嘉MD游戏开发,半个月时间我制作了两个小游戏,一个像素鸟BT版,一个俄罗斯方块,我在日志中有写过这俩游戏,有兴趣的可以翻看一下,俄罗斯方块不久将会在游聚游戏平台上线。自己制作的游戏能在游聚上线给了我比较大的惊喜,于是萌生了继续开发世嘉MD游戏的想法,并且开发一个地图比较大一点的,有很多关的游戏,我开始是想做一个地图比较大的《坦克大战》,FC的坦克大战地图有点小。但是碰到的第一个困难就是地图这块,测试功能的时候我是用的手写数组数据,40*28这么大的地图都感觉略费劲,更别说大地图多关卡了,于是我就放下世嘉MD游戏的开发工作,开始尝试写一个地图编辑器。
市面上成熟的Tile地图编辑器不在少数,但都不太符合我的要求,我需要一个非常轻量,只有最基本功能的地图编辑器,那些花里胡哨的功能并不需要,只要能导出原始数组信息就行。
既然要开发一个软件,而且是绘制地图的,很自然的我就想找个图形库,easy graphics engine和easyx我都尝试了一下,最终还是放弃了,于是想到了名声在外的SDL,以前也玩过玩家用SDL开发的《怒之铁拳重制版v5》这个游戏,对SDL还是有点好感的,图形库有了,还需要一些UI控件吧,毕竟这是个软件,不是游戏,只有图形库还不太够,但是我不想程序里附带非常多的xxx.dll,于是QT被我过滤了,其他的还有winform,不知为什么我就是不想用winform,依赖.Net还是有点局限性,最终我决定不用任何UI控件直接裸奔了,只需要一个SDL2.dll,就够了。
SDL2还有一个问题,就是对于文字显示支持不太好,还需要SDL_ttf.dll,纳尼???又要加dll???不能忍!!!继续裸奔,自己写了一个文字显示的功能,基本能满足我的需求,就是文字丑点,个人使用不论美丑,能用就行。
剩下的就是SDL教程部分了,网上也有不少资料,看了半天我就开始动手撸代码了。
断断续续的撸了有一周左右的时间,终于1.0版出炉了。
废话不多说,直接看东西:
下载链接: https://pan.baidu.com/s/1hz8ex4xwBvfz1jhMD-VKEw
提取码: wnny
README
//Tile Map Editor_v1.0
//制作:桑二哥
//B站:桑二哥
//微博@桑二哥
【简介】
这个地图编辑器是我特地给世嘉MD平台制作的(我是世嘉MD铁粉),主要目的是用来方便的拿到地图二维数组信息,这些信息是精灵碰撞所需要的。如果没有地图编辑器,那就只能做点小游戏,会耗费大量时间。
不过这个编辑器也可以用到别的平台,跟平台无关,只要是基于Tile数组的碰撞都可以用这个地图编辑器制作地图,不需要地图数组信息的也可以用这个编辑器制作地图导出图片,但是体验上肯定不如那些专门用来做地图的软件了。
软件使用体验不是太好,没有啥UI控件,纯SDL写的,而且我也很菜,刚学了没多久的C语言,这是我第一次做软件工具,难免还有BUG,还请大家多多包涵,高手勿喷。
【使用说明】
目录结构:
[Tile地图编辑器.exe]:主程序,双击打开编辑器。
[SDL2.dll]:SDL图形库,这个编辑器是用SDL2开发的。
[Tile文件夹]:这个文件夹用来存放tile图块的图片,所有tile最好都放到一张图片上,并且图片尺寸是8的整数倍,图片文件名必须是tile.bmp,程序里按LOAD按钮会从这个目录加载tile.bmp。
[Project文件夹]:这个文件夹用来存放存档,如果地图编辑到一半有事需要停下,等有时间再制作,那么就可以点程序中的SAVE按钮来保存,等下次打开编辑器点OPEN按钮就可以加载上次的进度继续编辑,备份的工作要自己做,每次保存都会覆盖。
[Export文件夹]:这个文件夹用来导出制作好的图片和数组数据:map.bmp和map.txt,备份的工作要自己做,每次保存都会覆盖。
[.Theme文件夹]:存放主题图片。
程序界面:
[NEW]:创建新工程,会弹出一个窗口,可选8x8,16x16,32x32三种尺寸的Tile,地图宽度和高度是基于Tile单位的,需要输入,输入之前要先点一下输入框进入输入模式,输入框下方会多出一个黑色提示线,代表此输入框被激活,键盘输入数字,按鼠标右键退出输入框。宽高最小为8,小于8会自动改成8。尺寸不宜过大,太大会造成程序崩溃。
[OPEN]:打开保存的工程。
[SAVE]:保存工程。
[SWITCH]:切换Tile编辑区的尺寸。
[EXPORT MAP]:导出图片和数组信息。
[1x],[2x],[4x]:缩放地图大小的。
[GRID]:显示/关闭网格。
[白网格]:网格颜色白色。
[黑网格]:网格颜色黑色。
[RESETPOS]:重设地图的位置为初始位置。
[-]:缩小Tile。
[+]:放大Tile。
[RESETPOS]:重设Tile的位置为初始位置。
[LOAD TILE]:从"./Tile"目录下加载"tile.bmp"图片。
[EDIT VALUE]:进入编辑模式,编辑选中的Tile块的数值(0-9),支持多选,再次点击此按钮退出编辑模式。
快捷操作:
鼠标滚轮缩放;
鼠标中键平移Tile/Map;
右键重设Tile/Map位置为初始位置;
左键绘制/选择Tile;
ASD键对应1x,2x,4x;
TAB键相当于[SWITCH]按钮;
鼠标位于MAP或者TILE区域时,W键相当于[GRID]按钮;
鼠标位于MAP或者TILE区域时,F1键显示/关闭数组信息;
SDL2有坑,
最近由 kileyi 修改于:2020-03-10 15:29:27音乐只能单轨不能多轨,音效可以多轨。
想完整搞音乐播放计时要自己封装,涉及多线程,而SFML就调个函数的事。
中文输入法列表不显示。
OpenGL垂直同步无效,CPU占用高。
不依赖DX的话推荐SFML或者GLFW,SDL看着美,用着蠢。
UI可以用imgui,功能齐全,能帮你节省大量头发。
工具最好发布到github。
OMG,一言不合就挂首页,我就回复一下请不要挂我,谢谢!
我也推荐imgui。
不过我写编辑器的话可能会考虑Python先。其实winform也挺好,效率会比较高。