Devc++ 开发的 Easyx 瓦片地图编辑器之自定义贴图导入模块

这篇具有很好参考价值的文章主要介绍了Devc++ 开发的 Easyx 瓦片地图编辑器之自定义贴图导入模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 接上次开发

 Editing While Playing 使用 Easyx 开发的 RPG 地图编辑器 tilemap eaitor-CSDN博客

 由于还不能导入自己绘制的贴图,所以还要增加自定义贴图的导入导出模块

这里就单独搓了一个自定义导入导出部分,之后再缝合进瓦片地图编辑器里文章来源地址https://www.toymoban.com/news/detail-833179.html

#include <stdio.h>
#include <io.h>
#include <direct.h>
#include <graphics.h>
// 按类型保存到当前目录指定文件夹下
void loadfile_scanf(char *dirname,char* next,char* kind,IMAGE** penbrick)
{
	//文件存储信息结构体
	struct _finddata_t fileinfo;
	//保存文件句柄
	long fHandle;
	//文件数记录器
	char dirpath[100];
	strcpy(dirpath,dirname);
	if(access(dirpath,0)==-1)														// 检查文件夹是否存在,不存在为 -1
	{
		mkdir(dirpath);
		return;
	}
	else
	{
		int i = 0;																	// 记录文件数量
		char kindpath[100];
		strcpy(kindpath,dirpath);
		strcat(kindpath,next);
		strcat(kindpath,kind);
		if( (fHandle=_findfirst( kindpath, &fileinfo )) == -1L ) 					// *是通配符,默认在当前文件夹内查找文件,这里查找 .png 文件
		{
			printf( "当前目录: %s 下没有所需文件\n",dirname);
			return ;
		}
		else
		{
			char path[100];
			do
			{
				i ++;
				printf("在%s下找到文件:%s,文件大小:%d bit\n", dirname,fileinfo.name,fileinfo.size);
				strcpy(path,dirname);
				strcat(path,next);
				strcat(path,fileinfo.name);
				loadimage(penbrick[i],path,30,30);													// 根据名称读取文件
			}
			while( _findnext(fHandle,&fileinfo)==0);
		}
		//关闭文件
		_findclose( fHandle );

		printf("文件数量:%d\n",i);
	}
}
// 从默认文件夹中读取自定义图片
void loadfile(IMAGE** penbrick)
{
	char brick[100]="birck_6_family";
//	char ground[100]="ground_7_family";
//	char change[100]="change_8_family";
//	char trick[100]="trick_9_family";
	char next[100]="./";
	char png[100]="*.png";
	loadfile_scanf(brick,next,png,penbrick);												// 加载用于当砖头类型的图片
//	loadfile_scanf(ground,next,png,msg);
//	loadfile_scanf(change,next,png,msg);
//	loadfile_scanf(trick,next,png,msg);

}
// 保存自定义文件
void savelocal(char* DLC,char *dirpath,char* next,char* kind,char** filename);
// 保存自定义瓦片贴图
void savepersonalfile(char*DLC,IMAGE** penbrick);
int main()
{
	initgraph(700,700);
	IMAGE **penbrick;															// penbrick 变成 penbrick
	penbrick=new IMAGE*[10];
	for(int i=0; i<10; i++)
		penbrick[i]=new IMAGE(30,30);
	setbkcolor(GREEN);
	cleardevice();
	for(int i=0; i<10; i++)
		putimage(0,i*30,penbrick[i]);

	char DLC[100]= {};
	strcpy(DLC,"DLC0");

	loadfile(penbrick);
	for(int i=0; i<10; i++)
		putimage(0,i*30,penbrick[i]);


	savepersonalfile(DLC,penbrick);
	getchar();
	return 0;
}
// 保存自定义文件
void savelocal(char* DLC,char *dirname,char* next,char* kind,char* sign,IMAGE** files)
{
	char dirpath[100]="";
	strcpy(dirpath,DLC);															// 字符串拼接出相对路径
	strcat(dirpath,next);
	strcat(dirpath,dirname);
	if(access(dirpath,0)==-1)														// 检查 DLC 内文件夹是否存在,不存在为 -1
	{
		mkdir(dirpath);
	}
	else
	{
		char filepath[100];
		char filepa[100]; 
		char num[10];
		strcpy(filepath,dirpath);												// 字符串拼接出文件名
		strcat(filepath,next);
		strcat(filepath,sign);
		for(int i=0; i<10; i++)
		{
			sprintf(num,"%d",i);
			strcpy(filepa,filepath);												// 从头粘贴,可以覆盖之前的信息,不受上一次保存的影响 
			strcat(filepa,num);
			strcat(filepa,kind);
			saveimage(filepa,files[i]);
			printf("file save %s\n",filepa);
		}
	}
}
// 在目标 DLC 里创建四个文件夹并保存
void savepersonalfile(char *DLC,IMAGE** penbrick)
{
	char brick[100]="birck_6_family";

//	char ground[100]="ground_7_family";
//	char change[100]="change_8_family";
//	char trick[100]="trick_9_family";
	char next[100]="./";
	char png[100]=".png";
	if(access(DLC,0)==-1)														// 检查文件夹是否存在,不存在为 -1
	{
		mkdir(DLC);
	}
	char sign[10]= {};
	strcpy(sign,"6");
	savelocal(DLC,brick,next,png,sign,penbrick);
//	savelocal(DLC,ground,next,png,msg);
//	savelocal(DLC,change,next,png,msg);
//	savelocal(DLC,trick,next,png,msg);

}

到了这里,关于Devc++ 开发的 Easyx 瓦片地图编辑器之自定义贴图导入模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Avalonia开发Markdown编辑器

    今天熟悉Avalonia UI,做一个Markdown的文本编辑器。 代码我上传了Github,地址: https://github.com/raokun/AvaloniaMarkdown.git 我使用开发工具的是visual studio 2022 preview ,上一篇博客已经写过了SDK的安装和基础项目的创建,需要了解的可以跳转查看: 创建Avalonia 模板项目-基础 由于Avaloni

    2024年02月11日
    浏览(41)
  • Unity编辑器开发——EditorWindow

    官方文档:EditorWindow - Unity 脚本 API EditorWindow  继承自  ScriptableObject 1.静态变量 变量名 官方解释 使用场景 focusWindow 当前已获得键盘焦点的 EditorWindow。(只读) mouseOverWindow 当前在鼠标光标下的 EditorWindow。(只读) 2.变量 变量名 官方解释 使用场景 titleContent 用于绘制 Edi

    2024年02月16日
    浏览(40)
  • 图形编辑器开发:以光标位置缩放画布

    大家好,我是前端西瓜哥。 画布缩放是图形设计工具中很重要的基础能力。 通过它,我们可以像举着一台摄影机,在图形所在的世界到处游逛,透过镜头,可以只看自己想看的图形;可以拉近摄影机,看到图形的细节;也可以拉远摄影机,总览多个图形之间的关系。 ok,那

    2024年02月11日
    浏览(39)
  • UE5引擎编辑器插件开发归档

    下面是自己在学习编辑器界面开发学习内容的总结,有错误的地方希望大家指出,谢谢~ 学习的教程为:https://www.bilibili.com/video/BV1M84y1K7m4 新添加一个编辑器的插件,修改插件的设定,\\\"Type\\\": 从 Runtime改为Editor,\\\"LoadingPhase\\\": \\\"Default\\\"改为PreDefault 此处参考文档: https://blog.csdn.net/p

    2024年02月08日
    浏览(45)
  • Unity行为树可视化编辑器开发

    在ARPG项目的开发过程当中,要涉及到NPC的AI系统,一般来说,简单的AI行为使用状态机即可比较好的实现,但如果NPC的行为稍微一复杂,那么使用状态机来实现就会比较难维护,并且后期工作量会随着NPC状态的增加而成倍增加。 这时就可以考虑使用行为树来实现NPC的AI,行为

    2024年02月11日
    浏览(44)
  • 【Linux环境基础开发工具】编辑器-vim

    vim是一个编辑器,是在Linux下编程的常用工具,如果要学习在Linux下的编程, 那学会使用vim是一个必修课,今天我就来讲解如何使用vim编辑器。 目录 写在前面 什么是vim vim的常用命令 (1)gg:定位光标到第一行第一个位置 (2)shift + g:定位光标到最后一行 (3)n + shift + g:

    2024年02月07日
    浏览(53)
  • 图形编辑器开发:一些会用到的简单几何算法

    大家好,我是前端西瓜哥。 开发图形编辑器,你会经常要解决一些算法问题。本文盘点一些我开发图形编辑器时遇到的简单几何算法问题。 判断两个矩形是否发生碰撞(或者说相交),即两个矩形有重合的区域。 常见使用场景: 使用选择工具 框选 图形(框选策略除了相交

    2024年02月16日
    浏览(51)
  • Python开发户型图编辑器-2D/3D户型图展示

    在现代家居设计中,户型图是不可或缺的工具,它为设计师和业主提供了一个直观的展示和规划空间的方式。然而,传统的户型图编辑软件往往复杂难用,限制了设计师的创作灵感。我们为您带来了一款全新的Python开发的户型图编辑器,让您的设计更加轻松、高效。 我们的户

    2024年02月21日
    浏览(44)
  • 基于QT4的GPX文件编辑器开发

    GPX文件是记录地理点的文件,本质是一种xml文件。GPX文件目前没有很好的编辑器,因此作者决定开发一款无需安装的绿色编辑器。 在QT4开发中,XML可以用DOM来实现,但其逻辑并不是很清晰。使用模型视图反而会更加可读。因此在开发中,使用model-view模式来实现数据读写。

    2024年02月12日
    浏览(48)
  • 前端必备的开发工具推荐——VScode代码编辑器

            VSCode(全称:Visual Studio Code)是一款由微软开发且跨平台的免费源代码编辑器。该软件支持语法高亮、代码自动补全(又称 IntelliSense)、代码重构、查看定义功能,并且内置了命令行工具和 Git 版本控制系统。用户可以更改主题和键盘快捷方式实现个性化设置,也

    2024年02月02日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包