GameDesign 板


LINE

上次介绍的是图像引擎,这次介绍自订的图档格式 自订的图档格式有很多好处,就是图档对一般玩家来说,他们是没有办法拿到的 虽然说对比较有技术的玩家来说,花时间去分析档案的格式就可以办得到 但是至少不会看见自己游戏的图档在网页上到处乱飞,除此之外,一般标准的图档 格式,里面所含的资讯不一定能符合游戏的需求,而当档案格式是自订时,你可以 用自己的方式压缩,加入一些杂七杂八的资讯,多张图片构成的动画,都可以 在一个档案内完成,这就是好处所在。 当然,为了要有自订的图档格式,编辑器或转档程式是免不了的,如果只是转档程式的话 就表示只是把一般图档转换成自订格式,外加的资讯就没有,因此我们这里只介绍图档 编辑器 http://www.kinmen.info/vic/image/surface_editor2.jpg
这是我自己写的图档编辑器,它可以把.Tga档输入,然後可以编辑图档在空间中的座标 贴图的过虑方式、顶点的颜色和透明度等等,会选择.Tga档是因为.Tga有包含Alpha通道, 而且档案格式简单,当然,这只是一些功能而以,我还有选取区域的编辑还没完成 除此之外,你在写你自己的图档编辑器时,可以加入你认为在游戏中很有用的资讯 而自订的档案格式,如果说你想让这种档案可以一直使用下去,就要有良好的规划 好的档案格式,可以一直扩充,有良好的弹性,这就是看你对未来会用到的东西 怎样在现在规划好,让到时候可以加进来,程式读取对不同版本的图档也可以 轻松解决 接着,我们介绍自订档案格式的大概样子 档案格式通常有两大部份,第一个部份我们称为Head,也就是档头,而档头最好用 struct包起来,这样在读取和写入时只要直接丢给档案IO就解决了 // 直接将档头写入 fwrite(&SurfaceHead,sizeof(SurfaceHead),1,pFile); 以下是档头struct范例 (因为蛮长的 所以删一些起来): /** @brief 存放图片用的平面 **/ struct SURFACE{ /** @brief Bits per pixel **/ unsigned long BPP; /** @brief 资料类形 SURFACE_RGB SURFACE_RGBA **/ unsigned long Type; /** @brief Format of data [0] normal data [1] ... **/ unsigned long DataFormat; /** @brief 图宽 **/ unsigned long Width; /** @brief 图高 **/ unsigned long Height; /** @brief 透明色 **/ unsigned long ColorKey; /** @brief Mag Filter 可用的值 : GL_NEAREST GL_LINEAR **/ unsigned long MagFilter; /** @brief Min Filter 可用的值 : GL_NEAREST GL_LINEAR GL_NEAREST_MIPMAP_NEAREST GL_LINEAR_MIPMAP_NEAREST GL_NEAREST_MIPMAP_LINEAR GL_LINEAR_MIPMAP_LINEAR **/ unsigned long MinFilter; /** @brief Blending Source factor 可用的值 : GL_ZERO ( 0, 0, 0, 0 ) GL_ONE ( 1, 1, 1, 1 ) GL_SRC_COLOR ( Rs / kR, Gs / kG, Bs / kB, As / kA ) GL_ONE_MINUS_SRC_COLOR ( 1, 1, 1, 1 ) - ( Rs / kR, Gs / kG, Bs / kB, As / (省略) **/ unsigned long SrcFactor; // 同上 省略 unsigned long DestFactor; /** @brief Flags SURFACE_FLAG_COLORKEY SURFACE_FLAG_POINTS SURFACE_FLAG_COLORS SURFACE_FLAG_MAG SURFACE_FLAG_MIN SURFACE_FLAG_BLEND **/ unsigned long Flags; /** @brief Four pints of image **/ SURFACE_POINT Points[4]; /** @brief Colors of four pints **/ SURFACE_COLOR Colors[4]; /** @brief Count of hit shape's points **/ unsigned long HitShapeCount; /** @brief 影像资料开始的偏移量 **/ unsigned long ImageDataOffset; /** @brief 延伸资料开始的偏移量 **/ unsigned long ExtendDataOffset; /** @brief 影像资料大小 **/ unsigned long ImageSize; /** @brief 延伸资料大小 **/ unsigned long ExtendSize; }; 首先,在档头前面可以加入档案的辨识名称,例如SFC是这档案格式的辨识名称 这样当读取到一个.sfc档要判断正确与否的方法,就是只要判断这三个字元正确与否 在大部份的情况下读错档案都会被发现 接着,是Version,也就是这个档案的版本,这是以後如果档案有改版时,可以由 Version来判断到底要怎样读取 剩下的,就是一些图档的资讯,在此不多做说明,这个由设计者自己决定 从图档的宽高、色深、压缩格式等等,都可以加在档头里 ------------------------------------------------------------------- 然後,就是开始图档资料的部份,我们在档头里面有写到 各种资料区的Offset,作用也就是,告诉读档程式哪个区的资料,是从哪里开始 这样有个好处,就是当档头增加了一些杂七杂八的东西时,Offset只要往後移 就解决了,而各种不同版本的档案,Offset只要照着档案写的去移就没问题了 而图档的资料部份,写入和读取也是看设计者决定,你可以直接把图档的Pixel就写入 也可以使用你自己想出来的压缩方式来压缩图档,这些都可以在档头里面,描述 档案储存的方式来决定的 -------------------------------------------------------------------- 以上大至上是自订图档格式的做法,因为需求上是看自己的,设计的决定 也没有一定的准则,所以这部份只要你明白图档储存的方式就很好发挥 -- VICTOR工作室 | PTT游戏设计版隆重开幕! | 不管是新手老手,程式美工音乐企划.... URL : http://www.kinmen.info/vic/ | 都欢迎来游戏设计版参与讨论 XD | 战略高手> C/C++ | GameTopics> Visual Basic 6.0 | GameDesign --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.116.64.70







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP