Game: Map Design Considerations 游戏地图设计指南
依据前文伏击战场景手稿, 用Tile Studio "草草"制作出该场景的地图:
生成的C源码:
#ifndef _open_war_1Gfx_c
#define _open_war_1Gfx_c #ifndef _GFX_BITMAP_DATA
#define _GFX_BITMAP_DATA
/* structure with bitmap data */
typedef struct GFX_BITMAP_DATA
{
char * BitmapIdentifier;
int BitmapWidth;
int BitmapHeight;
int TileWidth;
int TileHeight;
int TileCountX;
int TileCountY;
int TransparentX;
int TransparentY;
int Sequences;
int ** SequenceData;
int * SequenceLength;
int * SequencePosition;
int * SequenceCounter; } GFX_BITMAP_DATA;
#endif #ifndef _GFX_EMPTY
#define _GFX_EMPTY
static int Empty[] = {0};
#endif /* tile sequences */ int Tiles1SeqLength[] =
{
-1
}; int Tiles1SeqPosition[0 + 1];
int Tiles1SeqCounter[0 + 1]; int * Tiles1Sequences[] =
{
Empty
}; #define Gfxtile_set_2Map1MapWidth (25)
#define Gfxtile_set_2Map1MapHeight (18) signed short tile_set_2Map1MapData[18][25] =
{{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 1,
1},
{ 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 1, 1, 1, 5, 5, 6, 1, 1, 1, 2, 3, 4, 1, 1},
{ 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 5, 6, 1, 7, 7, 1, 2, 2, 2, 2, 3, 4, 1, 1},
{ 1, 1, 5, 6, 1, 1, 1, 1, 5, 6, 1, 7, 1, 5, 6, 1, 1, 2, 8, 8, 8, 8, 4, 1, 1},
{ 1, 1, 7, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 7, 1, 1, 1, 2, 8, 4, 4, 4, 4, 1, 1},
{ 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 8, 4, 1, 1, 1, 1, 1},
{ 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 2, 8, 8, 8, 8, 8, 8, 4, 1, 5, 5, 6, 1},
{ 1, 5, 6, 1, 1, 1, 1, 1, 1, 5, 6, 1, 2, 8, 4, 4, 4, 4, 4, 4, 1, 7, 7, 1, 1},
{ 1, 7, 1, 1, 1, 5, 6, 1, 1, 7, 1, 1, 2, 8, 4, 1, 1, 9, 1, 1, 1, 1, 1, 1, 1},
{ 1, 1, 1, 1, 1, 7, 1, 1, 1, 2, 2, 2, 2, 8, 4, 1, 5, 6, 1, 1, 5, 6, 1, 1, 1},
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 8, 8, 8, 8, 4,10, 7, 1, 1, 1, 7, 1, 1, 5, 6},
{ 1, 1, 1, 5, 6, 1, 2, 2, 2, 2, 8, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 7, 1},
{ 1, 1, 1, 7, 1, 1, 2, 8, 8, 8, 8, 4, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 1, 1},
{ 1, 1, 1, 1, 1, 1, 2, 8, 4, 4, 4, 4, 1, 1, 5, 6, 1, 7, 1, 1, 1, 5, 6, 1, 1},
{ 2, 2, 2, 2, 2, 2, 2, 8, 4, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1},
{ 8, 8, 8, 8, 8, 8, 8, 8, 4, 1, 5, 6, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 1, 1},
{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 7, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1},
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}}; unsigned short tile_set_2Map1BoundMapData[18][25] =
{{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}; /* tile sequences */ int tile_set_2SeqLength[] =
{
-1
}; int tile_set_2SeqPosition[0 + 1];
int tile_set_2SeqCounter[0 + 1]; int * tile_set_2Sequences[] =
{
Empty
}; /* tile sequences */ int objsSeqLength[] =
{
-1
}; int objsSeqPosition[0 + 1];
int objsSeqCounter[0 + 1]; int * objsSequences[] =
{
Empty
}; /* bitmap data */
const struct GFX_BITMAP_DATA GfxTiles1Bitmap =
{ "Tiles1", 320, 32, 32, 32,
10, 1, 81, 1, 0,
&Tiles1Sequences[0], &Tiles1SeqLength[0],
&Tiles1SeqPosition[0], &Tiles1SeqCounter[0]
}; const struct GFX_BITMAP_DATA Gfxtile_set_2Bitmap =
{ "tile_set_2", 320, 32, 32, 32,
10, 1, 81, 1, 0,
&tile_set_2Sequences[0], &tile_set_2SeqLength[0],
&tile_set_2SeqPosition[0], &tile_set_2SeqCounter[0]
}; const struct GFX_BITMAP_DATA GfxobjsBitmap =
{ "objs", 320, 32, 32, 32,
10, 1, 81, 1, 0,
&objsSequences[0], &objsSeqLength[0],
&objsSeqPosition[0], &objsSeqCounter[0]
}; #endif
如你也是地图制作初学者,可以看看:Game: Map Design Considerations 游戏地图设计指南,希望对你有帮助。
Enjoy~
Mars
August 4,2013
Any to share, e-me: mars.fu@foxmail.com
Game: Map Design Considerations 游戏地图设计指南的更多相关文章
- 新版MATERIAL DESIGN 官方动效指南(一)
Google 刚发布了新版Material Design 官方动效指南,全文包括三个部分:为什么说动效很重要?如何制作优秀的Material Design动效及转场动画,动效的意义.新鲜热辣收好不谢! ...
- ogre 3d游戏开发框架指南
ogre 3d游戏开发框架指南pdf 附光盘代码 http://www.ddooo.com/softdown/74228.htm OGRE3D游戏开发框架指南.pdf http://vdisk.wei ...
- Egret HTML5游戏开发指南
Egret HTML5游戏开发指南 下载地址:https://pan.baidu.com/s/1fuxllvmRhWXoWDwH4gxN9g 关注微信公众号获取提取码: 输入:egrt 获取提取码
- 《Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases》论文总结
Aurora总结 说明:本文为论文 <Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relation ...
- 新版MATERIAL DESIGN 官方动效指南(二)
继上一篇,本文继续第二部分,从动效的速度.动态持续时间.通用持续时间和缓动曲线4个部分,教你创建平滑一致的Material Design 动效.再系统的干货都比不上官方的动效指南,西瓜就在这,赶紧来捡 ...
- Multiprocessor Operating System Design Considerations SYMMETRIC MULTIPROCESSORS
COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION An SMP operating syst ...
- 新版MATERIAL DESIGN 官方动效指南(三)
运动 Material design 的动效会被类似真实世界中的力的影响,类似重力. 物体在屏幕内的运动 屏幕内物体在两点之间的运动,是沿着一条自然.凹陷的弧线.屏幕上所有的运动都可以使用标准曲线. ...
- Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases
INTRODUCTION In modern distributed cloud services, resilience and scalability are increasingly ach ...
- ARM Cortex Design Considerations for Debug
JTAG was the traditional mechanism for debug connections for ARM7/9 parts, but with the Cortex-M fam ...
随机推荐
- 在RHEL5.4下设置开机自动启动ORACLE 11G
以root身份登录,创建启动服务脚本 #cd /etc/rc.d/init.d #touch oracle11g #chmod a+x oracle11g 编辑启动脚本脚本文件(oracle11g), ...
- 第三百五十九天 how can I 坚持
在家待了一天,鼓捣了下linux,总算能连上网了,懂得还是少啊. 晚上去华北电力大学跑了会步,十圈,还挺有成就感呢,就是没带手环,哎. 以后学习一定要记笔记,上了这么多年学,都 没学会怎么记笔记,也是 ...
- 构建Spark作业
首先,要清楚,一个Java或Scala或python实现的Spark作业. 1.用sbt构建Spark作业 2.用Maven构建Spark作业 3.用non-maven-aware工具构建Spark作 ...
- Dagger学习笔记
@Inject 提供依赖的构造函数,或者需要依赖的成员变量 @Module 提供依赖,实例化的地方( 使用module实例化,方便测试的时候替换成其他对象,而这也是和构造方法注入的区别,如果用构造方法 ...
- JUnit 4 如何正确测试异常
本篇讲述如何在 JUnit 4 下正确测试异常,我会从 try..catch 的方式谈起,然后说到 @Test(expected=Exception.class), 最后论及 @Rules publi ...
- IIS中的上传目录权限设置问题
虽然 Apache 的名声可能比 IIS 好,但我相信用 IIS 来做 Web 服务器的人一定也不少.说实话,我觉得 IIS 还是不错的,尤其是 Windows 2003 的 IIS 6(马上 Lon ...
- 做 fzu oj 1106 题目学到的
题目如下 这道题的意识就是给一个数问是否可以又阶乘之和构成,而难点主要是在于如果是7的话就是1!+3!,并不是单纯的从1的阶乘开始加,而是没顺序的,所以这题就得用到递归. (大概就是函数自己调用函数自 ...
- oracle 空值与 null
Oracle中的空字符串基本上是被当成空NULL来处理的,我们可以从下面的得到印证. select nvl('','NULL') from dual 返回 'NULL' select ...
- Common Converters in WPF/Silverlight
using System; using System.ComponentModel; using System.Globalization; using System.Windows.Data; na ...
- CloudStack4.2 更新全局参数API
测试更新全局参数API http://192.168.153.34:8080/client/api?command=updateConfiguration&response=json& ...