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

📄 scanvas.java.bak

📁 JackyColorLinez源码上传。 我是第一个上传的。
💻 BAK
📖 第 1 页 / 共 2 页
字号:
				break;
			}else if(i==8&&balls.getCell(col,i)==thecolor){
				drow=8;
				break;
			}
		}
		//撇:先右上后左下
		if((8-rucol)<=rurow){
			for(i=rucol,j=rurow;i<=8&&j>=0;i++,j--){
				if(balls.getCell(i,j)!=thecolor){
					rucol=i-1;
					rurow=j+1;
					break;
				}else if(i==8&&balls.getCell(i,j)==thecolor){
					rucol=i;
					rurow=j;
					break;
				}
			}
		}else{
			for(i=rucol,j=rurow;i<=8&&j>=0;i++,j--){
				if(balls.getCell(i,j)!=thecolor){
					rucol=i-1;
					rurow=j+1;
					break;
				}else if(j==0&&balls.getCell(i,j)==thecolor){
					rucol=i;
					rurow=j;
					break;
				}
			}
		}
		
		if((8-ldrow)<=ldcol){
			for(i=ldcol,j=ldrow;i>=0&&j<=8;i--,j++){
				if(balls.getCell(i,j)!=thecolor){
					ldcol=i+1;
					ldrow=j-1;
					break;
				}else if(j==8&&balls.getCell(i,j)==thecolor){
					ldcol=i;
					ldrow=j;
					break;
				}
			}
		}else{
			for(i=ldcol,j=ldrow;i>=0&&j<=8;i--,j++){
				if(balls.getCell(i,j)!=thecolor){
					ldcol=i+1;
					ldrow=j-1;
					break;
				}else if(i==0&&balls.getCell(i,j)==thecolor){
					ldcol=i;
					ldrow=j;
					break;
				}
			}
		}
		//捺:先左上后右下
		if(lucol<=lurow){
			for(i=lucol,j=lurow;i>=0&&j>=0;i--,j--){
				if(balls.getCell(i,j)!=thecolor){
					lucol=i+1;
					lurow=j+1;
					break;
				}else if(i==0&&balls.getCell(i,j)==thecolor){
					lucol=i;
					lurow=j;
					break;
				}
			}
		}else{
			for(i=lucol,j=lurow;i>=0&&j>=0;i--,j--){
				if(balls.getCell(i,j)!=thecolor){
					lucol=i+1;
					lurow=j+1;
					break;
				}else if(j==0&&balls.getCell(i,j)==thecolor){
					lucol=i;
					lurow=j;
					break;
				}
			}
		}
		if(rdcol>=rdrow){
			for(i=rdcol,j=rdrow;i<=8&&j<=8;i++,j++){
				if(balls.getCell(i,j)!=thecolor){
					rdcol=i-1;
					rdrow=j-1;
					break;
				}else if(i==8&&balls.getCell(i,j)==thecolor){
					rdcol=i;
					rdrow=j;
					break;
				}
			}
		}else{
			for(i=rdcol,j=rdrow;i<=8&&j<=8;i++,j++){
				if(balls.getCell(i,j)!=thecolor){
					rdcol=i-1;
					rdrow=j-1;
					break;
				}else if(j==8&&balls.getCell(i,j)==thecolor){
					rdcol=i;
					rdrow=j;
					break;
				}
			}
		}
		//计算消失的小球数
		hballnum=rcol-lcol+1;
		vballnum=drow-urow+1;
		pballnum=rucol-ldcol+1;
		nballnum=rdcol-lucol+1;
		if(hballnum>=5){
			killedballnum+=hballnum;
			kb++;
		}
		if(vballnum>=5){
			killedballnum+=vballnum;
			kb++;
		}
		if(pballnum>=5){
			killedballnum+=pballnum;
			kb++;
		}
		if(nballnum>=5){
			killedballnum+=nballnum;
			kb++;
		}
		if(kb==0){
			killedballnum=0;
		}else if(kb==1){
			
		}else if(kb==2){
			killedballnum-=1;
		}else if(kb==3){
			killedballnum-=2;
		}else if(kb==4){
			killedballnum-=3;
		}

		//清除小球
		System.out.println(hballnum);
		System.out.println(vballnum);
		System.out.println(pballnum);
		System.out.println(nballnum);
		if(hballnum>=5){
			for(int y=lcol;y<=rcol;y++){
				balls.setCell(y,row,0);
			}
		}else if(vballnum>=5){
			for(int k=urow;k<=drow;k++){
				balls.setCell(col,k,0);
			}
		}else if(pballnum>=5){
			for(i=ldcol,j=ldrow;i<=rucol&&j>=rurow;i++,j--){
				balls.setCell(i,j,0);
			}
		}else if(nballnum>=5){
			for(i=lucol,j=lurow;i<=rdcol&&j<=rdrow;i++,j++){
				balls.setCell(i,j,0);
			}
		}

		return killedballnum;
	}

	//更新分数
	void updatescore(int killedballnumber){
		switch(killedballnumber){
			case 5:
				score+=10;
				break;
			case 6:
				score+=12;
				break;
			case 7:
				score+=18;
				break;
			case 8:
				score+=28;
				break;
			case 9:
				score+=42;//一直线42、非直线60
				break;
			case 10:
				score+=82;
				break;
			case 11:
				score+=108;
				break;
			case 12:
				score+=138;
				break;
			case 13:
				score+=142;
				break;
			case 14:
				score+=146;
				break;
			case 15:
				score+=150;
				break;
			case 16:
				score+=154;
				break;
			case 17:
				score+=158;
				break;
			case 18:
				score+=162;
				break;
			case 19:
				score+=166;
				break;
			case 20:
				score+=170;
				break;
			case 21:
				score+=174;
				break;
			case 22:
				score+=178;
				break;
			case 23:
				score+=182;
				break;
			case 24:
				score+=186;
				break;
			case 25:
				score+=190;
				break;
			case 26:
				score+=194;
				break;
			case 27:
				score+=198;
				break;
			case 28:
				score+=202;
				break;
		}
	}
	
	public void keyPressed(int keyCode){
		//从keyCode获取游戏动作
		//System.out.println(keyCode);
		int action=getGameAction(keyCode);

		if((keyCode==53 || keyCode==-5) && themenu==0 && GameStatus==0){
			//重新开始新的一局
			for(int i=0;i<bp.length;i++){
				int column=i%bdColumn;
				int row=(i-column)/bdRow;
				balls.setCell(column,row,0);
			}
			score=0;
			isFailed=false;
			for(int i=1;i<=5;i++){
				placeaball();
			}
			GameStatus=1;
		}else if((keyCode==-7) && GameStatus==1){
			GameStatus=0;
		}else if((keyCode==53 || keyCode==-5) && themenu==3 && GameStatus==0){
			GameStatus=2;
		}
		//按下向下或向上按钮
		if(GameStatus==GamePause){
			//菜单操作
			switch(action){
				case UP:
					if(--themenu<0)
						themenu=menus.length-1;
					break;
				case DOWN:
					if(++themenu>=menus.length)
						themenu=0;
					break;
			}
		}else if(GameStatus==GameStart){
			//游戏开始后的操作
			switch(action){
				case UP:
					if(cur.y<=0)
						cur.setPosition(cur.x,144);
					else
						cur.y-=18;
					break;
				case DOWN:
					if(cur.y>=144)
						cur.setPosition(cur.x,0);
					else
						cur.y+=18;
					break;
				case LEFT:
					if(cur.x<=0)
						cur.setPosition(144,cur.y);
					else
						cur.x-=18;
					break;
				case RIGHT:
					if(cur.x>=144)
						cur.setPosition(0,cur.y);
					else
						cur.x+=18;
					break;
				case FIRE:
					//选中小球后出现一个闪烁的光标
					if(balls.getCell(cur.x/18,cur.y/18)!=0){
						flashcur.setVisible(true);
						flashcur.setPosition(cur.x,cur.y);
						isFlash=true;
					}
					if(isFlash&&balls.getCell(cur.x/18,cur.y/18)==0){
						int x=balls.getCell(flashcur.getRefPixelX()/18,flashcur.getRefPixelY()/18);
						balls.setCell(flashcur.getRefPixelX()/18,flashcur.getRefPixelY()/18,0);
						balls.setCell(cur.x/18,cur.y/18,x);
						int ballnumber=killball(cur.x/18,cur.y/18,x);
						updatescore(ballnumber);
						flashcur.setVisible(false);
						flashcur.setPosition(cur.x,cur.y);
						if(ballnumber<5){
							for(int i=1;i<=3;i++){
								placeaball();
								int y=killball(thecol,therow,thecolor);
							}
						}
						isFlash=false;
					}
					break;
			}
		}else if(GameStatus==GameOver){
			//游戏结束时的操作
			if(keyCode==53 || keyCode==-5){
				//结束游戏代码
			}else{
				GameStatus=1;
				return;
			}
		}
		repaint();
	}
}

⌨️ 快捷键说明

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