为了开发世嘉MD游戏我写了个Tile地图编辑器

news/2024/11/27 22:36:41/

去年写过几个小游戏,都是很小的地图,当需要地图大一点的时候,我觉得必须有个地图编辑器了,于是。。。

 我是2019年年底接触到世嘉MD游戏开发(我在CSDN也有写过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版出炉了。

废话不多说,直接看东西:

想开发独立游戏?先写个Tile地图编辑器吧

下载链接: https://pan.baidu.com/s/1hz8ex4xwBvfz1jhMD-VKEw

提取码: wnny

【简介】
这个地图编辑器是我特地给世嘉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键显示/关闭数组信息;


http://www.ppmy.cn/news/535675.html

相关文章

世嘉MD游戏开发【十四】:SRAM存档和读档

很久没更新了,今天简单讲一下用SRAM存档和读档的功能,有了这个功能就可以做一些RPG角色扮演游戏了,保存角色的数据都挺方便的。 原理跟C语言文件读写差不多,流程都是打开读写权限,读写内容,关闭读写权限。…

世嘉MD游戏开发【十三】:音乐和音效

要是能为自己的游戏添加上动人的背景音乐和音效,无疑能提升不少游戏体验,不至于让玩家感觉毫无代入感。 今天我来讲一下世嘉MD游戏开发怎么运用音乐和音效。 我自己也是慢慢摸索的,说的不全面也是情理之中的,但是能满足最基本的…

世嘉MD游戏开发【一】:win10环境下配置SGDK

SGDK是一个小巧的开源免费的世嘉MD(Genesis或者MegaDrive)游戏开发包,用这个开发包你可以用C语言快速的制作MD游戏而不用去学晦涩难懂的汇编语言。 零、配置java环境变量(不做讲解) 一、下载SGDK开发包,解…

世嘉酒店预订管理系统

世嘉酒店预订管理系统功能结构图 转载于:https://www.cnblogs.com/11qq-/p/9045008.html

世嘉新人培训教材 demo环境配置

前言 在书的p4页,运行NonFree项目时出现了一系列环境问题的bug。记得第一次在另一台电脑跑的很顺畅,第二次换台电脑戴上痛苦面具。由于网上资料甚少,对于刚学习的萌新来说还是十分有必要讲解一下来避坑的。 我的环境 vs2019平台工具集选v1…

世嘉新人培训教材学习_第一章 _C++知识点复习

因为第一章为基础的C实现了推箱子的简单游戏,后面要使用到许多C的知识,之前学习过,但是因为用的较少,这里在简单复习一下。加深理解,同时也知道了在学校学的知识点只是停留在基础的语法部分,要真的去理解才…

世嘉rom_庆祝世嘉音响团队

世嘉rom Originally launched in 1998 and 2001 respectively, Sonic Adventure and Sonic Adventure 2 are two of the first console games I ever played (admittedly I was about 6 years old when I played them). riginally在1998年和2001年分别推出了,索尼克…

世嘉MD游戏开发进阶篇【三】:向量归一化的实现及应用

向量归一化是非常有用的,游戏中经常能用到,就说大家都见过的,FC魂斗罗的敌人发射子弹就能用到了,敌人向玩家发射子弹首先要获取到向量,这个向量不能直接作为方向去用,必须要经过归一化处理才行,…