⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 squareshape.java

📁 用java实现的俄罗斯方块游戏
💻 JAVA
字号:
import java.awt.*;
//是所有图形的基类
abstract class SquareShape
{
	private int rotateFlag=0;//旋转到第几下
	protected int position[][]=new int[4][2];//每个图形由四个方格所组成
	protected int xpos=100,ypos=0;//基点的位置,默认时其位置为第一行的中间
	protected Color color;//画方格的颜色
	
	public SquareShape()
	{
		defaultRotate();
	}
	//设置图形的位置
	public void setPlace(int x,int y)
	{
		xpos=x;
		ypos=y;
		switch(rotateFlag)
		{
			case 0:defaultRotate();
			break;
			case 1:firstRotate();
			break;
			case 2:secondRotate();
			break;
			case 3:thirdRotate();
		}
	}
	//画图形
	public void drawShape(Graphics g)
	{
		g.setColor(color);
		for(int i=0;i<4;i++)
		{
			g.fillRect(position[i][0],position[i][1],20,20);
		}
		g.setColor(Color.white);
		for(int i=0;i<4;i++)
		{
			g.drawRect(position[i][0],position[i][1],19,19);
		}
	}
	//顺转的计数
	public void rotate()
	{
		rotateFlag++;
		if(rotateFlag==4)
		{
			rotateFlag=0;
		}
	}
	//逆转动的计数
	public void contraRotate()
	{
		rotateFlag--;
		if(rotateFlag==-1)
		{
			rotateFlag=3;
		}
	}
	//默认时各方格的位置
	protected abstract void defaultRotate();

	//第一次旋转后各方格的位置	
	protected abstract void firstRotate();

	//第二次旋转后各方格的位置
	protected abstract void secondRotate();

	//第三次旋转后各方格的位置
	protected abstract void thirdRotate();

	//得到方格左边的位置
	public int getLeft()
	{
		int l[]={position[0][0],position[1][0],position[2][0],position[3][0]};
		for(int i=0;i<3;i++)
		{
			for(int j=i+1;j<4;j++)
			{
				if(l[i]>l[j])
				{
					int tmp=l[i];
					l[i]=l[j];
					l[j]=tmp;
				}
			}
		}
		return l[0];
	}
	//得到方格右边的位置
	public int getRight()
	{
		int r[]={position[0][0],position[1][0],position[2][0],position[3][0]};
		for(int i=0;i<3;i++)
		{
			for(int j=i+1;j<4;j++)
			{
				if(r[i]>r[j])
				{
					int tmp=r[i];
					r[i]=r[j];
					r[j]=tmp;
				}
			}
		}
		return r[3]+20;
	}
	//得到方格最底边的位置
	public int getBottom()
	{
		int b[]={position[0][1],position[1][1],position[2][1],position[3][1]};
		for(int i=0;i<3;i++)
		{
			for(int j=i+1;j<4;j++)
			{
				if(b[i]>b[j])
				{
					int tmp=b[i];
					b[i]=b[j];
					b[j]=tmp;
				}
			}
		}
		return b[3]+20;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -