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

📄 shape.java

📁 主要是一个手机版的游戏
💻 JAVA
字号:
package com.google.andriod.tetris;

public class Shape{
	
	private static final int SHAPE_I = 0;
	private static final int SHAPE_S = 1;
	private static final int SHAPE_NS= 2;
	private static final int SHAPE_L = 3;
	private static final int SHAPE_NL= 4;
	private static final int SHAPE_T = 5;
	private static final int SHAPE_O = 6;
	
	private int type;
	
	public class Vertex{
		public int x;
		public int y;
	}
	public Vertex[] vertex;
	
	private Vertex center_vertex;
	
	public Shape(Shape srcShape){
		center_vertex = new Vertex();
		center_vertex.x = srcShape.center_vertex.x;
		center_vertex.y = srcShape.center_vertex.y;
		type = srcShape.type;
		vertex = new Vertex[4];
		for(int i=0; i<4; i++){
			vertex[i]=new Vertex();
			vertex[i].x=srcShape.vertex[i].x;
			vertex[i].y=srcShape.vertex[i].y;
		}
	}
	
	public Shape(int X, int Y, int Type){
		
		center_vertex = new Vertex();
		center_vertex.x = X;
		center_vertex.y = Y+1;

		vertex = new Vertex[4];
		switch(Type){
		case SHAPE_I:
			type = SHAPE_I;
			for(int i=0; i<4; i++){
				vertex[i]=new Vertex();
				vertex[i].x=X;
				vertex[i].y=Y+i;
			}
			break;
		case SHAPE_S:
			type = SHAPE_S;
			for(int i=0; i<4; i++){
				vertex[i]=new Vertex();
				vertex[i].x=X+((i>1)?1:0);
				vertex[i].y=Y+(i-((i>1)?1:0));
			}
			break;
		case SHAPE_NS:
			type = SHAPE_NS;
			for(int i=0; i<4; i++){
				vertex[i]=new Vertex();
				vertex[i].x=X-((i>1)?1:0);
				vertex[i].y=Y+(i-((i>1)?1:0));
			}
			break;
		case SHAPE_L:
			type = SHAPE_L;
			for(int i=0; i<4; i++){
				vertex[i]=new Vertex();
				vertex[i].x=X+((i>2)?1:0);
				vertex[i].y=Y+(i-((i>2)?1:0));
			}
			break;
		case SHAPE_NL:
			type = SHAPE_NL;
			for(int i=0; i<4; i++){
				vertex[i]=new Vertex();
				vertex[i].x=X-((i>2)?1:0);
				vertex[i].y=Y+(i-((i>2)?1:0));
			}
			break;
		case SHAPE_T:
			type = SHAPE_T;
			for(int i=0; i<4; i++){
				vertex[i]=new Vertex();
			}
			vertex[0].x=X;
			vertex[0].y=Y;
			vertex[1].x=X;
			vertex[1].y=Y+1;
			vertex[2].x=X+1;
			vertex[2].y=Y+1;
			vertex[3].x=X;
			vertex[3].y=Y+2;
			break;
		case SHAPE_O:
			type = SHAPE_O;
			for(int i=0; i<4; i++){
				vertex[i]=new Vertex();
			}
			vertex[0].x=X;
			vertex[0].y=Y;
			vertex[1].x=X+1;
			vertex[1].y=Y;
			vertex[2].x=X;
			vertex[2].y=Y+1;
			vertex[3].x=X+1;
			vertex[3].y=Y+1;
			break;
		}
	}
	
	public void MoveDown(){
		center_vertex.y += 1;
		for(int i=0; i<4; i++){
			vertex[i].y += 1; 
		}
	}
	
	public void MoveLeft(){
		center_vertex.x -= 1;
		for(int i=0; i<4; i++){
			vertex[i].x -= 1;
		}
	}
	
	public void MoveRight(){
		center_vertex.x += 1;
		for(int i=0; i<4; i++){
			vertex[i].x += 1;
		}
	}

	public void Rotate(){
		int oldx, oldy;
		switch(type){
		case SHAPE_I:
			for(int i=0; i<4; i++){
				oldx = vertex[i].x;
				oldy = vertex[i].y;
				vertex[i].x = center_vertex.x+oldy-center_vertex.y;
				vertex[i].y = center_vertex.y+oldx-center_vertex.x;
			}
			break;
		case SHAPE_O:
			break;
		default:
			for(int i=0; i<4; i++){
				oldx = vertex[i].x;
				oldy = vertex[i].y;
				vertex[i].x = center_vertex.x+center_vertex.y-oldy;
				vertex[i].y = center_vertex.y+oldx-center_vertex.x;
			}
			break;
		}
	}
}

⌨️ 快捷键说明

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