📄 piece.java
字号:
/*
* Piece.java
*
* Copyright 2001 SkyArts. All Rights Reserved.
*/
import javax.microedition.lcdui.Graphics;
/**
* 显示Cube方块的类
*
* @author Hideki Yonekawa
* @version 1.0
*/
class Piece {
/** 储存红色的常量 */
static final int RED = 0x00FF0000;
/** 储存绿色的常量 */
static final int GREEN = 0x0000FF00;
/** 储存蓝色的常量 */
static final int BLUE = 0x000000FF;
/** 储存黄色的常量 */
static final int YELLOW = 0x00FFFF00;
/** 储存现在颜色的变量 */
int currentColor = 0x00FFFFFF;
/** 代表是否与上方方块凑成同样颜色的标志变量 */
boolean isMatchUp = false;
/** 代表是否与左方方块凑成同样颜色的标志变量 */
boolean isMatchLeft = false;
/** 代表是否与下方方块凑成同样颜色的标志变量 */
boolean isMatchDown = false;
/** 代表是否与右方方块凑成同样颜色的标志变量 */
boolean isMatchRight = false;
/** 储存宽度的常量 */
static final int WIDTH = 12;
/** 储存高度的常量 */
static final int HEIGHT = 12;
/**
* 进行描绘的方法
* 进行@param g 描绘时所用的Graphics对象
* 开始@param x 描绘的X坐标
* 开始@param y 描绘的Y坐标
*/
void doDraw(Graphics g, int x, int y) {
//以现在所储存的颜色来描绘内侧
g.setColor(this.currentColor);
g.fillRect(x, y, WIDTH, HEIGHT);
//描绘外侧(与隔壁凑在一起的话就不描绘)
g.setColor(0x00000000);
if(! isMatchUp) {
//没有和上面凑成同色时
g.drawLine(x, y, x+WIDTH, y);
}else {
if(isMatchLeft) {
//细微调整
g.drawLine(x, y, x, y);
}
}
if(! isMatchRight) {
//没有和右方凑成同色时
g.drawLine(x+WIDTH, y, x+WIDTH, y+HEIGHT);
}
if(! isMatchDown) {
//没有和下方凑成同色时
g.drawLine(x, y+HEIGHT, x+WIDTH, y+HEIGHT);
}
if(! isMatchLeft) {
//没有和左方凑成同色时
g.drawLine(x, y, x, y+HEIGHT);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -