package game;
import util.Config;
import java.awt.*;
import static game.Tetrisblok.shapes;
public class Block {
private int w=Config.BlockSize;
private int h=Config.BlockSize;
private int col;
private int row;
int score;
double speed=1;
private Color color=Color.gray;
int[][] map=new int[Config.COL+5][Config.ROW];
public Block(int col,int row){
this.col=col;
this.row=row;
}
public Block(){
}
// 初始化地图
public void newmap() {
for (int i = 2; i < Config.COL-2; i++) {
for (int j = 2; j < Config.ROW-2; j++) {
map[i][j] = 0;
}
}
}
public void draw(Graphics g) {
Color c = g.getColor();
g.setColor(color);
g.drawRect(Config.BlockSize * col, Config.BlockSize * row, w, h);
g.setColor(c);
}
//判断下落的方块是否碰到墙或者碰到以前掉下去的方块
//如果碰到则返回0
//判断小砖块是否合法
//相当于碰撞检测
public boolean blow(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))
|| ((shapes[blockType][turnState][a * 4 + b] == 1) && (map[x
+ b + 1][y + a] == 2))) {
return true;
}
}
}
return false;
}
// 消行的方法
public void delline() {
int c = 0;
for (int b = 0; b < Config.ROW-1; b++) {
for (int a = 0; a < Config.COL-1; a++) {
if (map[a][b] == 1) {
c = c + 1;
if (c == Config.COL-4) {
score += 10;
speed +=0.1;
for (int d = b; d > 0; d--) {
for (int e = 0; e < Config.COL-2; e++) {
map[e][d] = map[e][d - 1];
}
}
}
}
}
c = 0;
}
}
// 把当前添加map
//添加上去的砖块会使map赋值为1
public void add(int x, int y, int blockType, int turnState) {
int j = 0;
for (int a = 0; a < 4; a++) {
for (int b = 0; b < 4; b++) {
if (map[x + b + 1][y + a] == 0) {
map[x + b + 1][y + a] = shapes[blockType][turnState][j];
}
j++;
}
}
}
//画围墙
public int[][] drawwall() {
for (int i = 1; i < Config.COL-1; i++) {
map[i][Config.ROW-2] = 2;
}
for (int j = 0; j < Config.ROW-1; j++) {
map[Config.COL-2][j] = 2;
map[1][j] = 2;
}
return map;
}
public int getCol() {
return col;
}
public void setCol(int col) {
this.col = col;
}
public int getRow() {
return row;
}
public void setRow(int row) {
this.row = row;
}
}
最近下载更多
ClydeSon LV5
2023年12月27日
1474371745 LV1
2023年12月23日
微信网友_6699076084797440 LV7
2023年10月30日
lsglsg9 LV23
2022年9月27日
uuuuuu1 LV1
2022年6月3日
姜广坤 LV14
2022年5月21日
二十 LV1
2021年12月8日
15661649928 LV1
2020年12月12日
jrh947869206 LV4
2020年12月7日
Zcjiayouya LV1
2020年9月6日
最近浏览更多
微信网友_7556339099734016 LV3
6月23日
13133117021 LV5
2024年12月24日
saikiTEST
2024年12月12日
暂无贡献等级
yimaoermao LV1
2024年9月21日
luoyanglin LV2
2024年9月14日
azzzz1 LV2
2024年6月26日
bill1234 LV1
2024年6月23日
RicardoLou
2024年5月7日
暂无贡献等级
ClydeSon LV5
2023年12月27日
1474371745 LV1
2023年12月23日

