关于我的俄罗斯方块中所需的另外一个文件Turn.Right.blk的说明

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

Turn.Right.blk文件是自定义的俄罗斯方块数据文件,其中包含了各方块的样式、关系及翻转坐标变换。

文件的头8个字节为数据文件标识信息:

其中包括:

0-2字节:BLK,表示该文件确实是俄罗斯方块的数据文件;

3-6字节:为版本信息。

7字节:为数据文件中包含的俄罗斯方块的个数。

以上为数据文件的头部信息,但现在除了7字节外(即个数)都没有判断。

文件的后续部分为方块结构,C中定义如下:

/*

定义每个方块的结构

*/

#if !defined _BLOCK_H_

#define _BLOCK_H_

#define BLOCK_VERSION &H01000000 //主版本号、辅版本、附加版本、附加2

#define BLOCK_SIZE 6 //存储到文件时占用的字节数

#define BLOCK_HEADER_SIZE 8 //存储文件头信息的大小

struct _Block

{//注意:这些字段对于存储文件来说是有先后之分的。

unsigned int ID:8;

unsigned int NextID:8;

int Width:4; //切忌,因为Width与Height不可能<=0,所以0表示1,比如一个方块高0,宽2,其实表示高1,宽3。

int Height:4;

int OffsetY:4;

int OffsetX:4;

unsigned int Elements; //方块的各位是否为实体

};

typedef _Block BLOCK;

#endif

切忌,因为Width与Height不可能<=0,所以0表示1,比如一个方块高0,宽2,其实表示高1,宽3。

具体文件的示范内容见下图:

该示范中7字节为十六进制13,表示有19个方块,其实该示范中共提供了33个方块(同形状的不同变换也算不同)。之所以文件名叫做Turn.Right.blk,是因为该文件的方块格式为我所习惯的顺时针翻转格式,

如果不习惯请自行修改。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航