首页>代码>java swing开发的俄罗斯方块游戏,包含完整代码+详细注释>/ItcastTetris1.02_final/src/cn/itcast/tetris/entities/UnitType.java
package cn.itcast.tetris.entities;
import java.awt.Color;
/**
* 可以表示地面里面的障碍物, 不可消除的障碍物, 空白<BR>
* <BR>
* 外部不可以直接new 一个实例, 而应该用 clone() 方法产生实例(防止产生不能识别的类型)<BR>
* 例如产生一个障碍物:<BR>
* <code><BR>
UnitType aObstacle = UnitType.OBSTACLE.clone();<BR>
* </code><BR>
*
*/
public class UnitType implements Cloneable {
/* 定义一些要用到的常量 */
/**
* 空白类型的值
*/
private static final int BLANK_VALUE = 0;
/**
* 边框类型的值
*/
private static final int STUBBORN_OBSTACLE_VALUE = 1;
/**
* 障碍物类型的值
*/
private static final int OBSTACLE_VALUE = 2;
/**
* 空白类型
*/
public static final UnitType BLANK = new UnitType(BLANK_VALUE, Color.WHITE);
/**
* 边框类类型
*/
public static final UnitType STUBBORN_OBSTACLE = new UnitType(
STUBBORN_OBSTACLE_VALUE, new Color(0x808000));
/**
* 障碍物类型
*/
public static final UnitType OBSTACLE = new UnitType(OBSTACLE_VALUE,
Color.DARK_GRAY);
/**
* 类型值
*/
private int value;
/**
* 颜色
*/
private Color color;
/**
* 得到类型值
*
* @return
*/
public int getValue() {
return value;
}
/**
* 设置类型值
*
* @param value
*/
public void setValue(int value) {
this.value = value;
}
/**
* 得到颜色
*
* @return
*/
public Color getColor() {
return color;
}
/**
* 设置颜色
*
* @param color
*/
public void setColor(Color color) {
this.color = color;
}
/**
* 接受类型的私有的构造方法<BR>
*
* @param value
*/
private UnitType(int value) {
super();
this.value = value;
}
/**
* 接受类型和颜色的私有的构造方法
*
* @param value
* @param color
*/
private UnitType(int value, Color color) {
super();
this.value = value;
this.color = color;
}
/**
* 返回一个新的,和自己有一样的颜色并且类型相同的UnitType
*/
@Override
public UnitType clone() {
// TODO Auto-generated method stub
return new UnitType(this.value, this.color);
}
/**
* 把自己克隆成和指定的UnitType 相同的 UnitType, value 和 Color 都会被克隆
*
* @param ut
*/
public void cloneProperties(UnitType ut) {
this.color = ut.color;
this.value = ut.value;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + value;
return result;
}
/**
* 相同的类型就是相等, 不比较颜色
*/
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
final UnitType other = (UnitType) obj;
if (value != other.value)
return false;
return true;
}
}
最近下载更多
微信网友_7556339099734016 LV3
6月23日
chy520 LV1
2024年6月2日
ClydeSon LV5
2023年12月18日
微信网友_6770780673069056 LV2
2023年12月9日
npc也有忧伤 LV3
2022年3月19日
guzhiguo0313 LV5
2022年2月12日
闫小玥 LV8
2021年12月22日
秒速一千米 LV2
2021年9月4日
jnagri LV6
2021年7月6日
zhangjian800 LV1
2021年5月25日
最近浏览更多
微信网友_7556339099734016 LV3
6月23日
dushine LV3
4月10日
luoyanglin LV2
2024年9月14日
2824163870szy
2024年7月1日
暂无贡献等级
zr20050503 LV2
2024年6月27日
hainabian1977 LV2
2024年6月24日
bill1234 LV1
2024年6月23日
chy520 LV1
2024年5月29日
douxing
2024年3月5日
暂无贡献等级
crapcrap LV2
2024年2月1日

