一个俄罗斯方块,描述方块图形的类,看了半天没有看懂,望大家指教

badcitizen 2009-10-06 11:33:27
这是一段俄罗斯方块,描述方块图形的类,我看了很久一致不理解0,1,-1,2,-2的意思,以前用0,1,习惯了,现在看不懂了,到底这段算法是怎么实现的,看看,各位看客能不能给我个提示。看来我是真的笨了。



class BrickShape {

short[] groupx = new short[4];

short[] groupy = new short[4];

static BrickShape[] _shapes;

public static final int SHAPE_COUNT = 6;

static {

// 都以左下角为坐标点

short[] shapes = {

//

// ##

// ##

0, 0, 0, -1, 1, 0, 1, -1,

//

0, 0, 0, -1, 1, 0, 1, -1,

//

0, 0, 0, -1, 1, 0, 1, -1,

//

0, 0, 0, -1, 1, 0, 1, -1,

// _#__#_______#

// ###_##_###_##

// ____#___#___#

0, 0, -1, 0, 1, 0, 0, -1,

//

0, 0, 0, 1, 0, -1, 1, 0,

//

0, 0, -1, 0, 1, 0, 0, 1,

//

0, 0, 0, -1, 0, 1, -1, 0,

// ## # #

// _# ### # ###

// _# ## #

//

0, 0, 0, -1, 0, -2, 1, 0,

//

0, 0, 1, 0, 2, 0, 0, 1,

//

0, 0, 0, 1, 0, 2, -1, 0,

//

0, 0, -1, 0, -2, 0, 0, -1,

// # ##

// # # # ###

// ## ### # #

//

0, 0, 0, -1, 0, -2, -1, 0,

//

0, 0, 1, 0, 2, 0, 0, -1,

//

0, 0, 0, 1, 0, 2, 1, 0,

//

0, 0, -1, 0, -2, 0, 0, 1,

// ####

0, 0, -1, 0, 1, 0, 2, 0,

//

0, 0, 0, -1, 0, 1, 0, 2,

//

0, 0, -1, 0, -2, 0, 1, 0,

//

0, 0, 0, -1, 0, -2, 0, 1,

// ## #

// ## ##

// #

0, 0, 0, -1, -1, -1, 1, 0,

//

0, 0, 1, 0, 1, -1, 0, 1,

//

0, 0, 0, -1, -1, -1, 1, 0,

//

0, 0, 1, 0, 1, -1, 0, 1,

//

};

_shapes = new BrickShape[4 * SHAPE_COUNT];

for (int i = 0; i < SHAPE_COUNT; ++i) {

for (int j = 0; j < 4; ++j) {

BrickShape bs = new BrickShape();

_shapes[i * 4 + j] = bs;

for (int k = 0; k < 4; ++k) {

int l = (i * 4 + j) * 8 + 2 * k;

bs.groupx[k] = shapes[l];

bs.groupy[k] = shapes[l + 1];

}

}

}

}

static BrickShape getShape(int shapeID, int angleID) {

return _shapes[shapeID * 4 + angleID];

}

}
...全文
85 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
由4个坐标点确定一个形状吧
beyondma 2009-10-07
  • 打赏
  • 举报
回复
那些-1,-2应该都是状态,这种代码不是一个好的风格,应该用常量或者宏。

790

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 其他移动相关
社区管理员
  • 移动开发其他问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧