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

📄 gamedata.java

📁 j2me
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
								m_lines++;
							}
						}
						else{
							ret=true;
							m_lines++;
							for(byte y2=y;y2>=2;y2--){
								System.arraycopy(bin1[y2-1],0,bin1[y2],0,bin1[y2].length);
							}
						}
						break;
					}
				}
				//当前游戏区没有收一行,则无须检测4遍。
				if(m_lines==0){
					break;
				}
			}
			//保存收的总行数
			m_alllines+=m_lines;
			return ret;			
			}
		
//		void judge_fk(){
//			for(byte i=0;i<del.length;i++){
//				if(del[i]!=0){
//					for(byte x=1;x<=MAXROWS;x++){
//						if(bin1[del[i]][x]<=0){
//							for(byte l=0;l<del.length;l++){
//								if(del[i]!=0){
//									del[i]--;
//								}
//								else{
//									break;
//								}
//							}
//							break;
//						}
//					}
//				}
//				else{
//					break;
//				}
//			}
//		}
		
		void del_fk(){
			if(m_chair==m_gamehigh.MyChair)
				m_gamehigh.bombindex=0;
//			judge_fk();
			
			for(byte i=0;i<del.length;i++){
				if(del[i]!=0){
					if(del[i]<=MAXCENG){
						for(byte x=1;x<=MAXROWS;x++)
						{
							if(m_chair==m_gamehigh.MyChair)
							{
								if(bin1[del[i]][x]>0){
									m_gamehigh.bombpoint[m_gamehigh.bombindex][0]=x;
									m_gamehigh.bombpoint[m_gamehigh.bombindex][1]=(byte)(del[i]-i);
									m_gamehigh.bombindex++;
								}
							}
							if(m_gamehigh.DJC){
								if(bin1[del[i]][x]>=80)
								{
									AddDaoju(bin1[del[i]][x]);
								}
							}
						}
						
						for(byte y2=del[i];y2>=2;y2--)
						{//上方单元标志移下一格
							System.arraycopy(bin1[y2-1],0,bin1[y2],0,bin1[y2].length);
						}
					}
					
					for(byte l=i;l<del.length;l++){
						if(del[l]!=0){
							del[l]++;
						}
					}
					del[i]=0;
				}
				else{
					break;
				}
			}
//			初始化粒子动画对象
			if(m_chair==m_gamehigh.MyChair){
				m_gamehigh.m_fxpoint.InitManage(m_gamehigh.bombpoint,m_gamehigh.bombindex,true);
			}
		}
		//快速到底
		void QuickDownBottom()
		{
			for(int y=2;y<=MAXCENG;y++)
			{
				if(checkdown()==true)
				{
					SetToDown();
				}
				else
					break;
			}
		}
		
		//在底部垫高指定层数(网格填充)
		void AddBottomCell(int cengs)
		{
			newcell(cengs);
			if(cengs<=0)return;
			int y=MAXCENG;
			for(y=1+cengs;y<=MAXCENG;y++)
			{//下方单元标志移上一格
				System.arraycopy(bin1[y],0,bin1[y-cengs],0,bin1[y].length);
			}
			
			int BOTTOMFLAG=-1;								//底部垫层时的奇偶标志

			if(bin1[MAXCENG][1]>=1)
				BOTTOMFLAG=1;
			else
				BOTTOMFLAG=-1;
			
			for(int y2=MAXCENG-cengs+1;y2<=MAXCENG;y2++)
			{
				if(BOTTOMFLAG==1)
				{
					System.arraycopy(tmpdata[2],0,bin1[y2],0,bin1[y2].length);
				}
				else
				{
					System.arraycopy(tmpdata[3],0,bin1[y2],0,bin1[y2].length);
				}
				BOTTOMFLAG=-BOTTOMFLAG;
			}
			ProcessOther();
		}
		
		
		
//		从底部开始移除指定行数。
		public void ClearLines(int linenum)
		{
//			for(byte y=MAXCENG;y>MAXCENG-linenum;y--)
//			{//上方单元标志移下一格
//				
//				if(m_chair==m_gamehigh.MyChair){
//					del_move_judge(y);
//				}
//				else{
//					for(byte y2=y;y2>=2;y2--){
//						System.arraycopy(bin1[y2-1],0,bin1[y2],0,bin1[y2].length);
//					}
//				}
//			}
			
				if(m_chair==m_gamehigh.MyChair){
					for(byte y=MAXCENG;y>MAXCENG-linenum;y--){
						del_move_judge(y);
					}
					if(m_gamehigh.CellDownNum>0){
						for(int i=0;i<m_gamehigh.CellDownNum;i++){
							m_gamehigh.newcellb[i]+=linenum;
						}
					}
					
				}
				else{
					for(byte y2=(byte) (MAXCENG-linenum);y2>2;y2--){
						System.arraycopy(bin1[y2],0,bin1[y2+linenum],0,bin1[y2].length);
					}
				}
			
			
			
			//newcell(-linenum);
//			System.out.println(m_gamehigh.MyChair+"   使用了减行道具"+linenum);
		}
		
		
		
		//游戏区全部单元置灰
		void SetAllCellsEnd()
		{
			if(bin1[MAXCENG][1]>0 && bin1[MAXCENG][2]>0 && bin1[MAXCENG][3]>0 &&bin1[MAXCENG][4]>0 || bin1[MAXCENG][5]>0 ||  bin1[MAXCENG][6]>0				||  bin1[MAXCENG][7]>0 || bin1[MAXCENG][8]>0 || bin1[MAXCENG][9]>0 || bin1[MAXCENG][10]>0)
				{
					for(int y=1;y<=MAXCENG;y++)
					{
						boolean flag=false;
						for(int x=1;x<=MAXROWS;x++)
						{
							bin1[y][x]=bin1[y][x]>0?50:bin1[y][x];
							flag=true;
						}
						if(flag==false)
							break;
					}
				}
		}
		
		void ProcessOther()
		{
			int tmpx,tmpy;
			//处理被升行导致的单元嵌入情况
			for(int loop=0;loop<5;loop++)
			{
				boolean flag2=false;
				for(int i=1;i<5;i++)
				{
					tmpx=m_nowcentera+m_cell[m_nowboxindex].ab[i][0];
					tmpy=m_nowcenterb+m_cell[m_nowboxindex].ab[i][1];
					if(tmpx>=1 && tmpy>=1 && tmpx<=MAXROWS && tmpy<=MAXCENG)
					{
						if(bin1[tmpy][tmpx]>0)
							{//存在嵌入
								flag2=true;
								break;
							}
					}
				}
				if(flag2==true)
				{//单元往上移
					m_nowcenterb--;
					if(m_nowcenterb<1)
						break;
				}
				else
				{//不存在嵌入,则退出
					break;
				}
			}
		}
		//在底部消去指定层数(只有机器人会发此消息)
		void DelBottomCell(byte cengs)
		{
			int topy=GetMaxy();
			for(int y=MAXCENG-cengs;y>=topy;y--)
			{
				System.arraycopy(bin1[y],0,bin1[y+cengs],0,bin1[y].length);
			}
			for(int y=topy;y<topy+cengs;y++)
			{
				System.arraycopy(bin1[1],0,bin1[y],0,bin1[1].length);
			}
		}
		
		boolean del_move_judge(byte num){
			for(byte i=0;i<del.length;i++){
				if(del[i]==0){
					del[i]=num;
					return true;
				}
				else if(del[i]==num){
					return false;
				}
			}
			return false;
		}
		
		
		//道具=================
//		初始化道具列表
		public void ClearDaoju()
		{
			System.arraycopy(tmpdata[1],1,daojubody,0,daojubody.length);
//			for(int i=0;i<daojubody.length;i++){
//				daojubody[i]=81;
//			}
		}
//		添加道具到道具列表
		private void AddDaoju(byte index)
		{
			for(int i=0;i<daojubody.length;i++)
			{
				if(daojubody[i]==0)
					{
						daojubody[i]=index;
//						System.out.println("包裹"+i+"增加了东西"+index);
						break;
					}
			}
		}
		//轮换道具
		public void LoopDaoju()
		{
			byte tmp=daojubody[0];
			if(tmp==0)
				return;
			DelDaoju();
			for(int i=0;i<daojubody.length;i++)
			{
				if(daojubody[i]==0)
				{
					daojubody[i]=tmp;
					break;
				}
			}
		}
		//移出刚刚使用的道具
		public void DelDaoju()
		{
			System.arraycopy(daojubody,1,daojubody,0,daojubody.length-1);
			daojubody[dj_num-1]=0;
		}
		
//		从随机设置道具点(置值为80~85之间的值代表不同的道具)
		public void SetDaoju(int daojuindex)
		{
			boolean enable=false;
			int temp_num=0;
			for(int y=MAXCENG;y>=2;y--)
			{
				//保证此行没有道具点
				enable=false;
				temp_num=0;
				for(int k=1;k<=MAXROWS;k++)
				{
					if(bin1[y][k]>0){
						if(bin1[y][k]>=80)
						{
							enable=true;
							break;
						}
						else if(bin1[y][k]==50&&m_randplay.nextInt()%15<1){
							enable=true;
							break;
						}
						temp_num++;
					}
				}
				if(temp_num==MAXROWS){
					continue;
				}
				//如果此行已经有道具则再向上安排。
				if(enable==true)
					continue;

				//保证此行一定有单元
				enable=false;
				temp_num=0;
				for(int k=1;k<=MAXROWS;k++)
				{
					if(bin1[y][k]>0)
					{
						enable=true;
						break;
					}
				}
				//如果此行为空行则再向上安排,此情况很少出现,只有当使用激光特效时才会出现短时间空行。
				if(enable==false)
					continue;
				
				//收集此行的所有存在单元
				byte tmpindex=0;
				for(byte k=1;k<=MAXROWS;k++)
				{
					if(bin1[y][k]>0)
					{
						tmpdaoju[tmpindex]=k;
						tmpindex++;
					}
				}
				//在这些单元中随机选择安排道具的点。
				byte x=tmpdaoju[m_gamehigh.GetRandCell(tmpindex)];
				bin1[y][x]=(byte)daojuindex;
				break;
			}
//			System.out.println("产生了道具========"+daojuindex);
		}

//		游戏区移除全部单元(动画)
		void ClearAllLines()
		{
			if(m_chair==m_gamehigh.MyChair)
				m_gamehigh.bombindex=0;
			
			for(byte y=1;y<=MAXCENG;y++)
			{
				for(byte x=1;x<=MAXROWS;x++)
					{
						if(bin1[y][x]>0)
						{
							bin1[y][x]=0;
							if(m_chair==m_gamehigh.MyChair)
							{
								m_gamehigh.bombpoint[m_gamehigh.bombindex][0]=x;
								m_gamehigh.bombpoint[m_gamehigh.bombindex][1]=y;
								m_gamehigh.bombindex++;
							}
						}
					}
			}
			if(m_gamehigh.bombindex>0 && m_chair==m_gamehigh.MyChair){
				m_gamehigh.m_fxpoint.InitManage(m_gamehigh.bombpoint,m_gamehigh.bombindex,true);
			}
			
			m_gamehigh.CellDownNum=0;
		}

		
		private void newcell(int num){
			if(m_chair!=m_gamehigh.MyChair){
				return;
			}
			for(int i=0;i<m_gamehigh.CellDownNum;i++){
				m_gamehigh.newcellb[i]-=num;
			}
			for(int l=0;l<del.length;l++){
				if(del[l]==0){
					break;
				}
				else{
					del[l]-=num;
				}
			}
		}

}

⌨️ 快捷键说明

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