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

📄 gobangcanvas.java

📁 游戏说明
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
				break;
			case GobangEvent.USERREADY:   //用户准备好响应
				sendflag = false;
				resendflag = 0;
				gamestate =USERREADY;
				commstructnode.setStatus(USERREADYSTR);
				if(oppuserinfo.getStatus().equals(USERREADYSTR)){  //防止在服务器端双方同时按开始,而错过开始游戏
					sendflag = true;
					gobangdeal.setStartRequest(commstructnode);
				}else{
					if(usercolor == BLACK_COLOR){
						blacksprite.setPosition(USER_COLOR_X,USER_COLOR_Y);
						blacksprite.setVisible(true);
					}else{
						whitesprite.setPosition(USER_COLOR_X,USER_COLOR_Y);
						whitesprite.setVisible(true);
					}
				}
				
				break;
			case GobangEvent.OPPREADY:
				oppuserinfo.setStatus(USERREADYSTR);
				if(commstructnode.getStatus().equals(USERREADYSTR)){  //防止在服务器端双方同时按开始,而错过开始游戏
					sendflag = true;
					gobangdeal.setStartRequest(commstructnode);
				
				}else{
					if(usercolor == WHITE_COLOR){
						blacksprite.setPosition(OPP_COLOR_X,OPP_COLOR_Y);
						blacksprite.setVisible(true);
						
					}else{
						whitesprite.setPosition(OPP_COLOR_X,OPP_COLOR_Y);
						whitesprite.setVisible(true);
						
					}
					
				}
				
				break;
			case GobangEvent.OTHERREADY:
				
				break;
			
			case GobangEvent.USERSTART:   //用户开始游戏响应
				sendflag = false;
				resendflag = 0;
				commstructnode.setStatus(USERSTARTSTR);
				oppuserinfo.setStatus(USERSTARTSTR);
				
				if(usercolor == BLACK_COLOR){ //自己先下
					gamestate = USERFALL;
					operatelayerstart();
					blacksprite.setPosition(USER_COLOR_X,USER_COLOR_Y);
					whitesprite.setPosition(OPP_COLOR_X,OPP_COLOR_Y);
					mousesprite.setCurrRect(qipanrect);
					mousesprite.setDisplay();
					usertimeflag = true;
					opptimeflag = false;
					selectsprite.setVisible(true);
				}else{  //对方先下
					waitoppflag = true;
					gamestate = OPPFALL;
					operateoppstart();
					whitesprite.setPosition(USER_COLOR_X,USER_COLOR_Y);
					blacksprite.setPosition(OPP_COLOR_X,OPP_COLOR_Y);
					opptimeflag = true;
					usertimeflag = false;
					selectsprite.setVisible(false);
							
				}
				blacksprite.setVisible(true);
				whitesprite.setVisible(true);
				waitsprite.setVisible(false);
				stepnum = 0;
				break;
			
			case GobangEvent.OPPSTART:  //对家开始游戏响应
				oppuserinfo.setStatus(USERSTARTSTR);
				commstructnode.setStatus(USERSTARTSTR);
				if(usercolor == WHITE_COLOR){
					gamestate = OPPFALL;
					operateoppstart();
					blacksprite.setPosition(OPP_COLOR_X,OPP_COLOR_Y);
					whitesprite.setPosition(USER_COLOR_X,USER_COLOR_Y);
					opptimeflag = true;
					usertimeflag = false;
					selectsprite.setVisible(false);
					qipanselectflag = false;
										
				}else{
					gamestate = USERFALL;
					operatelayerstart();
					mousesprite.setCurrRect(qipanrect);
					mousesprite.setDisplay();
					mousesprite.setVisible(false);
					whitesprite.setPosition(OPP_COLOR_X,OPP_COLOR_Y);
					blacksprite.setPosition(USER_COLOR_X,USER_COLOR_Y);
					usertimeflag = true;
					opptimeflag = false;
					selectsprite.setVisible(true);
				}
				selectsprite.setNewPosition(7,7);
				blacksprite.setVisible(true);
				whitesprite.setVisible(true);
				waitsprite.setVisible(false);
				qipanselectflag = true;
				stepnum = 0;
				break;
			case GobangEvent.OTHERSTART:  //其他用户开始游戏响应
				break;
				
			case GobangEvent.USERPLAYRESPOND:  //用户下棋响应
				waitopptimer = 0;   //等待对家下子等待时间清零
				waitoppflag = true; //等待对家反应标志置激活
				sendflag = false;
				resendflag = 0;
				operateoppstart();
				regetflag = true; //表示用户已经下子,可以悔棋
				opptimeflag = true;
				usertimeflag = false;
				gamestate = OPPFALL;
				selectsprite.setVisible(false);
				mousesprite.setCurrRect(operaterect);
				mousesprite.setDisplay();
				break;
			case GobangEvent.OPPPLAYRESPOND: //对家下棋响应
				operatelayerstart();
				waitopptimer = 0;   //等待对家下子等待时间清零
				waitoppflag = false; //等待对家反应标志置否
				sendflag = false;
				opptimeflag = false;
				usertimeflag = true;
				gamestate = USERFALL;
				x = Integer.parseInt(maingameevent.getByName("xvalue"))-1;  //服务器格子编号为1到15
				y = Integer.parseInt(maingameevent.getByName("yvalue"))-1;
				stepnum = Integer.parseInt(maingameevent.getByName("stepnum"));
				chessesflag[x][y] = false;
				qizilayer.setCell(x,y,anticolor);
				presprite.setNewPosition(x,y);
				presprite.setVisible(true);
				qipanselectflag = true;
				mousesprite.setCurrRect(qipanrect);
				mousesprite.setDisplay();
				selectsprite.setRelase();
				selectsprite.setVisible(true);
				break;
				
			case GobangEvent.USERGIVEUP:  //用户放弃下子
				waitopptimer = 0;   //等待对家下子等待时间清零
				waitoppflag = true; //等待对家反应标志置否
				sendflag = false;
				resendflag = 0;
				regetflag = true;
				operateoppstart();
				opptimeflag = true;
				usertimeflag = false;
				break;
			case GobangEvent.OPPGIVEUP:  //对家放弃下子
				waitopptimer = 0;   //等待对家下子等待时间清零
				waitoppflag = false; //等待对家反应标志置否
				operatelayerstart();
				stepnum = Integer.parseInt(maingameevent.getByName("stepnum"));
				qipanselectflag = true;
				gamestate = USERFALL;
				opptimeflag = false;
				usertimeflag = true;
				mousesprite.setCurrRect(qipanrect);
				mousesprite.setDisplay();
				selectsprite.setRelase();
				selectsprite.setVisible(true);
				
				break;
				
			case GobangEvent.OPPAGREENREGRET:  //对家同意悔棋
				waitopptimer = 0;   //等待对家下子等待时间清零
				waitoppflag = false; //等待对家反应标志置否
				sendflag = false;
				resendflag = 0;
				gamestate = USERFALL;
				waitoppsprite.setVisible(false);
				regetflag = false;
				x = Integer.parseInt(maingameevent.getByName("firprex"))-1;
				y = Integer.parseInt(maingameevent.getByName("firprey"))-1;
				if(x>=0||y>=0){
					chessesflag[x][y] = true;
					qizilayer.setCell(x,y,0);
				}
				
				
				x = Integer.parseInt(maingameevent.getByName("secprex"))-1;
				y = Integer.parseInt(maingameevent.getByName("secprey"))-1;
				if(x>=0||y>=0){
					chessesflag[x][y] = true;
					qizilayer.setCell(x,y,0);
				}
				x = Integer.parseInt(maingameevent.getByName("thiprex"))-1;
				y = Integer.parseInt(maingameevent.getByName("thiprey"))-1;
				if(x<0||y<0){
					presprite.setVisible(false);
				}else{
					presprite.setNewPosition(x,y);
					presprite.setVisible(true);
				}
				
				stepnum = Integer.parseInt(maingameevent.getByName("stepnum"));
				operatelayerstart();
				promptcontrol.init("对家同意悔棋!",chatfont);
				promptcontrol.setDisplay(true);
				promptcontrol.setPosition(30,30);
				mousesprite.setPosition(promptcontrol.getFocusX()+10,promptcontrol.getFocusY()+10);
				break;
			case GobangEvent.OPPANTIREGRET: //对家不同意悔棋:
				waitopptimer = 0;   //等待对家下子等待时间清零
				waitoppflag = false; //等待对家反应标志置否
				sendflag = false;
				resendflag = 0;
				waitoppsprite.setVisible(false);
				operatelayerstart();
				stepnum = Integer.parseInt(maingameevent.getByName("stepnum"));
				promptcontrol.init("对家不同意悔棋!",chatfont);
				promptcontrol.setDisplay(true);
				promptcontrol.setPosition(30,30);
				mousesprite.setPosition(promptcontrol.getFocusX()+10,promptcontrol.getFocusY()+10);
				break;
				
			case GobangEvent.USERAGREENREGRET:  //同意对家悔棋
				sendflag = false;
				resendflag = 0;
				gamestate = OPPFALL;
				x = Integer.parseInt(maingameevent.getByName("firprex"))-1;
				y = Integer.parseInt(maingameevent.getByName("firprey"))-1;
				if(x>=0||y>=0){
					chessesflag[x][y] = true;
					qizilayer.setCell(x,y,0);
				}
				x = Integer.parseInt(maingameevent.getByName("secprex"))-1;
				y = Integer.parseInt(maingameevent.getByName("secprey"))-1;
				if(x>=0||y>=0){
					chessesflag[x][y] = true;
					qizilayer.setCell(x,y,0);
				}
				x = Integer.parseInt(maingameevent.getByName("thiprex"))-1;
				y = Integer.parseInt(maingameevent.getByName("thiprey"))-1;
				if(x<0||y<0){
					presprite.setVisible(false);
				}else{
					presprite.setNewPosition(x,y);
					presprite.setVisible(true);
				}
				break;
			case GobangEvent.OPPREGRET:  //对家请求悔棋
				stepnum = Integer.parseInt(maingameevent.getByName("stepnum"));
				agreencontrol.init("对家请求悔棋!",chatfont);
				agreetype = REGRET;
				agreencontrol.setPosition(AGREEN_X,AGREEN_Y);
				agreencontrol.setDisplay(true);
				mousesprite.setPosition(agreencontrol.getFocusX()+10,agreencontrol.getFocusY()+10);
				break;
			
			case GobangEvent.OPPTIE:  //对家求和
				stepnum = Integer.parseInt(maingameevent.getByName("stepnum"));
				agreencontrol.init("对家请求和棋!",chatfont);
				agreetype = QUESTTIE;
				agreencontrol.setPosition(30,30);
				agreencontrol.setDisplay(true);
				mousesprite.setPosition(agreencontrol.getFocusX()+10,agreencontrol.getFocusY()+10);
				break;
			case GobangEvent.OPPAGREENTIE:  // 对家同意求和
				waitopptimer = 0;   //等待对家下子等待时间清零
				waitoppflag = false; //等待对家反应标志置否
				sendflag = false;
				resendflag = 0;
				stepnum = Integer.parseInt(maingameevent.getByName("stepnum"));
				gameendlayer.setCell(0,0,3);
				setEndState();
				gamestate = USERSIT;
				waitoppsprite.setVisible(false);
				regetflag = false;
				break;
				
			case GobangEvent.OPPANTITIE:  //对家不同意求和
				waitopptimer = 0;   //等待对家下子等待时间清零
				waitoppflag = false; //等待对家反应标志置否
				sendflag = false;
				resendflag = 0;
				waitoppsprite.setVisible(false);
				operatelayerstart();
				stepnum = Integer.parseInt(maingameevent.getByName("stepnum"));
				promptcontrol.init("对家不同意和棋!",chatfont);
				promptcontrol.setDisplay(true);
				promptcontrol.setPosition(30,30);
				mousesprite.setPosition(promptcontrol.getFocusX()+10,promptcontrol.getFocusY()+10);
				break;
			case GobangEvent.USERAGREENTIE:  //同意对家求和响应
				sendflag = false;
				resendflag = 0;
				gameendlayer.setCell(0,0,3);
				setEndState();
				gamestate = USERSIT;
				waitoppsprite.setVisible(false);
				regetflag = false;
				break;
				
			case GobangEvent.OPPSURRENDER:  //对家认输
				gameendlayer.setCell(0,0,2);
				setEndState();
				break;
			case GobangEvent.USERSURRENDER:  //用户认输响应
				sendflag = false;
				resendflag = 0;
				gameendlayer.setCell(0,0,1);
				setEndState();
				break;
			case GobangEvent.BLACKWIN:  //黑棋胜
				waitopptimer = 0;   //等待对家下子等待时间清零
				waitoppflag = false; //等待对家反应标志置否
				sendflag = false;
				resendflag = 0;
				if(usercolor==BLACK_COLOR){
					gameendlayer.setCell(0,0,2);
				}else{
					gameendlayer.setCell(0,0,1);
				}
				setEndState();
				break;
				
			case GobangEvent.WHITEWIN: //白旗胜
				waitopptimer = 0;   //等待对家下子等待时间清零
				waitoppflag = false; //等待对家反应标志置否
				sendflag = false;
				resendflag = 0;
				if(usercolor==WHITE_COLOR){
					gameendlayer.setCell(0,0,2);
				}else{
					gameendlayer.setCell(0,0,1);
				}
				setEndState();
				break;
			case GobangEvent.GAMEEQUAL:   //平局
				waitopptimer = 0;   //等待对家下子等待时间清零
				waitoppflag = false; //等待对家反应标志置否
				sendflag = false;
				resendflag = 0;
				gameendlayer.setCell(0,0,3);
				setEndState();
				break;
				
			case GobangEvent.OPPSTANDUP: //对家站起
				waitopptimer = 0;   //等待对家下子等待时间清零
				waitoppflag = false; //等待对家反应标志置否
				oppExit();
				clearCanvas();
				break;
			case GobangEvent.OPPEXIT:  //对家退出游戏
				oppE

⌨️ 快捷键说明

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