private int blockType;// 方块类型
private int turnState;// 旋转状态
private int x;// 方块的位置x--列的位置--列号
private int y;// 方块的位置y--行的位置--行号
private int map[][] = new int[13][23];// 地图:12列22行。为防止越界,数组开成:13列23行
private int delay = 1000;
public TimerKeyLister listener = new TimerKeyLister();
private int score = 0;// 分数
public TetrisPanel() {
newGame();
nextBlock();
// timer=newTimer(delay, listener);
// timer.start();
private void add(int x, int y, int blockType, int turnState) {
for (int a = 0; a < 4; a++) {
for (int b = 0; b < 4; b++) {
if (shapes[blockType][turnState][a * 4 + b]==1){
map[x + b +1][y +a] = 1;
}
}
}
tryDelLine();
}
// 消行
private void tryDelLine(){
for (int b = 0; b <21; b++) {
int c=1;
for(int a=0;a<12;a++) {
c &= map[a][b];// 全部是1, c的结果才是1
}
if (c == 1) {// 有一行需要消
// 依次往下移动一行
for (int d = b; d> 0; d--) {
for (int e = 0; e < 11; e++) {
map[e][d] =map[e][d - 1];