依据前文伏击战场景手稿, 用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 游戏地图设计指南的更多相关文章

  1. 新版MATERIAL DESIGN 官方动效指南(一)

    Google 刚发布了新版Material Design 官方动效指南,全文包括三个部分:为什么说动效很重要?如何制作优秀的Material Design动效及转场动画,动效的意义.新鲜热辣收好不谢! ...

  2. ogre 3d游戏开发框架指南

    ogre 3d游戏开发框架指南pdf 附光盘代码 http://www.ddooo.com/softdown/74228.htm OGRE3D游戏开发框架指南.pdf http://vdisk.wei ...

  3. Egret HTML5游戏开发指南

    Egret  HTML5游戏开发指南 下载地址:https://pan.baidu.com/s/1fuxllvmRhWXoWDwH4gxN9g 关注微信公众号获取提取码: 输入:egrt 获取提取码

  4. 《Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases》论文总结

    Aurora总结 说明:本文为论文 <Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relation ...

  5. 新版MATERIAL DESIGN 官方动效指南(二)

    继上一篇,本文继续第二部分,从动效的速度.动态持续时间.通用持续时间和缓动曲线4个部分,教你创建平滑一致的Material Design 动效.再系统的干货都比不上官方的动效指南,西瓜就在这,赶紧来捡 ...

  6. Multiprocessor Operating System Design Considerations SYMMETRIC MULTIPROCESSORS

    COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION An SMP operating syst ...

  7. 新版MATERIAL DESIGN 官方动效指南(三)

    运动 Material design 的动效会被类似真实世界中的力的影响,类似重力. 物体在屏幕内的运动 屏幕内物体在两点之间的运动,是沿着一条自然.凹陷的弧线.屏幕上所有的运动都可以使用标准曲线. ...

  8. Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases

    INTRODUCTION   In modern distributed cloud services, resilience and scalability are increasingly ach ...

  9. ARM Cortex Design Considerations for Debug

    JTAG was the traditional mechanism for debug connections for ARM7/9 parts, but with the Cortex-M fam ...

随机推荐

  1. iOS tableview 优化总结

    根据网络上的优化方法进行了总括.并未仔细进行语言组织.正在这些优化方法进行学习,见另一篇文章 提高app流畅度 1.cell子控件创建写在 initWithStyle:reuseIdentifier ...

  2. dom 左右两侧得广告(兼容IE FF)

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  3. POJ 1269 Intersecting Lines(直线相交判断,求交点)

    Intersecting Lines Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8342   Accepted: 378 ...

  4. Ubuntu之系统交换分区Swap增加与优化

    http://os.51cto.com/art/201212/372860.htm   http://blog.csdn.net/xingyu15/article/details/5570225   ...

  5. unigui TUniTreeView demo

    unit untTree; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...

  6. emWin(ucGui) MULTIEDIT控件的按键响应处理 worldsing

    目前没有读过ucgui的源代码,通过应用代码测试出在FRAMEWIN的控件焦点顺序是样的: 按资源列表里创建的控件,默认将焦点落在第一个可接收焦点的控件,目前知道不可接收 焦点的控件有TEXT,在FR ...

  7. POJ 3172 Scales (01背包暴力)

    题意:给定 n 个数,保证下一个数比上一个数和前一个数之和大,然后给定一个背包,问你最多放多少容积. 析:应该是很明显的01背包,但是可惜的是,数组开不出来,那就得考虑暴力,因为数不多,才几十而已,要 ...

  8. mysql无法启动 mysqld process already exists

    1.提示:A mysqld process already exists ps 命令用于查看当前正在运行的进程. grep 是搜索 例如: ps -ef | grep mysql 表示查看所有进程里 ...

  9. installshield basic msi 更新时覆盖不了上一个版本文件解决方案1

    1.增加dll exe程序集的版本号 2.设置IS里文件的Set key file

  10. android Notification和NotificationManager的使用

    Notification和NotificationManager 1.Broadcast Receiver组件没有提供可视化的界面来显示广播信息.这里我们可以使用Notification和Notifi ...