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

📄 gamecanvas.java

📁 此代码是手机五指棋代码!!使用ECLIPSE开发工具开发!!在手机模拟器上通过.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                    g.setColor(0x00fffe57) ;
                    g.setFont(Font.getFont(Font.FACE_SYSTEM ,Font.STYLE_BOLD,Font.SIZE_SMALL));
                    g.drawString(ss8, 40, 89,Graphics.TOP |Graphics.LEFT);
                }
                //游戏作者介绍   
                else if((start==1)&&(index==3)){
                    g.setColor(0x00000000) ;
                    g.fillRect(0, 0,this.getWidth(), this.getHeight());
                    g.setColor(0x00abcdef) ;
                    g.setFont(Font.getFont(Font.FACE_SYSTEM ,Font.STYLE_BOLD,Font.SIZE_LARGE));
                    String ss1="天才李峰制作^o^" ;
                    String ss8="按5返回"  ;
                    
                    g.drawString(ss1, 1, 20,Graphics.TOP |Graphics.LEFT ) ;
                    g.setColor(0x00fffe57) ;
                    g.setFont(Font.getFont(Font.FACE_SYSTEM ,Font.STYLE_BOLD,Font.SIZE_LARGE));
                    g.drawString(ss8, 40, 76,Graphics.TOP |Graphics.LEFT);
                }
		else{
//			游戏最开始的一次性画面
			if(start==0){
				WinnerFrame.OffdrawPic(0,0,offscreen);
				g.drawImage(copy,0,0,Graphics.LEFT |Graphics.TOP );
				String st1="疯狂对对碰" ;
				String st2="开始游戏" ;
				String st3="游戏规则";
				String st4="关于作者" ;
				g.setColor(0x0081ff21);
				g.setFont(Font.getFont(Font.FACE_SYSTEM ,Font.STYLE_BOLD,Font.SIZE_LARGE));
				g.drawString(st1,27,3,Graphics.TOP |Graphics.LEFT );
                                g.setColor(0x00ba4521);
				g.setFont(Font.getFont(Font.FACE_SYSTEM ,Font.STYLE_BOLD,Font.SIZE_MEDIUM));
                                g.drawString(st2,18,45,Graphics.TOP |Graphics.LEFT );
				g.drawString(st3,18,59,Graphics.TOP|Graphics.LEFT);
				g.drawString(st4,18,73,Graphics.TOP|Graphics.LEFT);
                                g.setColor(0x00ffddee);
                                g.drawRect(10,45 + (index - 1) * 14,80,14);
                               
			}
		}
	}

	public void run() {
		while(true){
			playGame() ;
			try{
				Thread.sleep(5) ;
			}catch(InterruptedException e){
				System.out.println("sleep error :"
						+e.getMessage()) ;
			}
		}

	}
	
	protected void playGame(){
		if(!pause){
			this.Lmove();
			this.Rmove();
			this.Push() ;
			this.Push_Fall();
		}
		repaint() ;
	}
	
	public void start(){
		Thread t = new Thread(this) ;
		t.start();
	}
	
	public void startButton(){
		pause=false ;
	}
	
	public void pause(){
		pause=true;
	}
	
	protected void Lmove(){
		//垂直运动
		if(LIsPressed==0){
		if((MLBrick_Hflag==0)&&(LMBrick_Top_y>UP_MAX)){
			LMBrick_Top_y=LMBrick_Top_y-HSPEED ;
		}
		else if((MLBrick_Hflag==0)&&(LMBrick_Top_y<=UP_MAX)){
			MLBrick_Hflag=1 ;
		}
		else if((MLBrick_Hflag==1)&&(LMBrick_Top_y<DOWN_MAX)){
			LMBrick_Top_y=LMBrick_Top_y+HSPEED ;
		}
		else if((MLBrick_Hflag==1)&&(LMBrick_Top_y>=DOWN_MAX)){
			MLBrick_Hflag=0 ;
		}
		}
		
		//水平运动
		
			int Rmax ; //向右最大距离
			if(Boy_Push>=0&&Boy_Push<=2){
				Rmax=LM_MAXRIGHT[Boy_Push] ;
			}
			else{
				Rmax=PBrick_Place_Top_x[0]-26;
			}
			if((MLBrick_Wflag==1)&&(LMBrick_Top_x<Rmax)){
				LMBrick_Top_x=LMBrick_Top_x+WSPEED ;
				}
			else if((MLBrick_Wflag==1)&&LMBrick_Top_x>=Rmax){
				MLBrick_Wflag=-1 ;
				if(Boy_Push>=0&&Boy_Push<=2){
					style[Boy_Push]=style[Boy_Push]+1 ;
				}
				}
			else if((MLBrick_Wflag==-1)&&LMBrick_Top_x>LEFT_MAX){
				LMBrick_Top_x=LMBrick_Top_x-WSPEED ;
				}
			else if((MLBrick_Wflag==-1)&&LMBrick_Top_x<=LEFT_MAX){
				MLBrick_Wflag=0 ;
				LIsPressed=0 ;
				Boy_Push=8;
				}
			}
	
	
	protected void Rmove(){
		//垂直运动
		if(RIsPressed==0){
			if((MRBrick_Hflag==0)&&(RMBrick_Top_y>UP_MAX)){
				RMBrick_Top_y=RMBrick_Top_y-HSPEED ;
				}
			else if((MRBrick_Hflag==0)&&(RMBrick_Top_y<=UP_MAX)){
				MRBrick_Hflag=1 ;
				}
			else if((MRBrick_Hflag==1)&&(RMBrick_Top_y<DOWN_MAX)){
				RMBrick_Top_y=RMBrick_Top_y+HSPEED ;
				}
			else if((MRBrick_Hflag==1)&&(RMBrick_Top_y>=DOWN_MAX)){
				MRBrick_Hflag=0 ;
				}
			}
		   
		//水平运动
			int Lmax ;
			if(Girl_Push>=0&&Girl_Push<=2){
				Lmax=RM_MAXLEFT[Girl_Push] ;
			}
			else{
				Lmax=PBrick_Place_Bottom_x;
			}
			
			if((MRBrick_Wflag==1)&&(RMBrick_Top_x<RIGHT_MAX)){
			RMBrick_Top_x=RMBrick_Top_x+WSPEED ;
			}
			
			else if((MRBrick_Wflag==1)&&RMBrick_Top_x>=RIGHT_MAX){
				MRBrick_Wflag=0 ;
				RIsPressed=0 ;
				Girl_Push=8;
				}
			else if((MRBrick_Wflag==-1)&&RMBrick_Top_x>Lmax){
				RMBrick_Top_x=RMBrick_Top_x-WSPEED ;
				}
			else if((MRBrick_Wflag==-1)&&RMBrick_Top_x<=Lmax){
				MRBrick_Wflag=1 ;
				if(Girl_Push>=0&&Girl_Push<=2)
					style[Girl_Push]=style[Girl_Push]-1 ;
				}
			}
	//推动方块
	protected void Push(){
		if(Boy_Push>=0&&Boy_Push<=2){
			if((LMBrick_Top_x+26>=PBrick_Top_x[Boy_Push])&&(PBrick_Top_x[Boy_Push]<LM_MAXRIGHT[Boy_Push]+26)){
				PBrick_Top_x[Boy_Push]=PBrick_Top_x[Boy_Push]+WSPEED ;
			}
//			else if(PBrick_Top_x[Boy_Push]>=LM_MAXRIGHT[Boy_Push]+25){
//				Push_Flag[Boy_Push]=0 ;
				
//			}
		}
		
		if(Girl_Push>=0&&Girl_Push<=2){
			if((RMBrick_Top_x-24<=PBrick_Top_x[Girl_Push])&&(PBrick_Top_x[Girl_Push]>RM_MAXLEFT[Girl_Push]-24)){
				PBrick_Top_x[Girl_Push]=PBrick_Top_x[Girl_Push]-WSPEED ;
			}
//			else if(PBrick_Top_x[Girl_Push]<=RM_MAXLEFT[Girl_Push]-24){
//				Push_Flag[Girl_Push]=0 ;
//				}
			}
		}
	//方块下落事件
	protected void Push_Fall(){
		for(int t=0;t<3;t++){
			if(((style[t]==3)||(style[t]==-3))&&PBrick_Top_y[t]<(boy_y-Push_Brick.get_height())){
				PBrick_Top_y[t]=PBrick_Top_y[t]+FSPEED ;
                                FallFlag=1 ;
//				break;
				}
			else if(((style[t]==3)||(style[t]==-3))&&PBrick_Top_y[t]>=(boy_y-Push_Brick.get_height())){
				Swinner_event(style[t]); 
				style[t]=0 ;
				break;
			}
		}
	}
	//单局胜负事件
	protected void Swinner_event(int sty){
		if(sty>0){
			boy_win_num=boy_win_num+1 ;
			now_winner=1 ;
		}
		else{
			girl_win_num=girl_win_num+1 ;
			now_winner=8 ;
		}
		if((boy_win_num==3)||(girl_win_num==3)){
			total_winner=now_winner ;
		}
	}
	//男孩方块推动引发的事件
	protected void boyPush(){
		if(LIsPressed==0){
			LIsPressed=1 ;
			MLBrick_Wflag=1 ;
			for(int i=0;i<3 ;i++){
				if(LMBrick_Top_y>=PBrick_Place_Top_y[i]&&LMBrick_Top_y<=PBrick_Place_Top_y[i]+6){
					LM_MAXRIGHT[i]=LM_MAXRIGHT[i]+(Push_Brick.get_width()/3);
					RM_MAXLEFT[i]=RM_MAXLEFT[i]+(Push_Brick.get_width()/3);
					Push_Flag[i]=1 ;
					Boy_Push=i ;
					break;
					}
				}
			}
		}
	//
	protected void girlPush(){
		if(RIsPressed==0){
			RIsPressed=1 ;
			MRBrick_Wflag=-1 ;
			for(int i=0;i<3;i++){
				if(RMBrick_Top_y>=PBrick_Place_Top_y[i]&&RMBrick_Top_y<=PBrick_Place_Top_y[i]+6){
					RM_MAXLEFT[i]=RM_MAXLEFT[i]-(Push_Brick.get_width()/3);
					LM_MAXRIGHT[i]=LM_MAXRIGHT[i]-(Push_Brick.get_width()/3);
					Push_Flag[i]=-1 ;
					Girl_Push=i ;
					break ;
					}
				}
			}
	}
	
	//单局返回
	protected void returnSGame(){
		System.out.println(total_winner);
		now_winner=0 ;
		S_iniGame();
	}
	//开始新游戏
	protected void returnTGame(){
		now_winner=0 ;
		total_winner=0 ;
		T_iniGame() ;
	}
	
	protected synchronized void keyPressed(int keyCode) {
		
//		如果游戏暂停,则按键无效
		if (pause)
			return;

		//游戏中按键接受
			switch (keyCode){
			case KEY_NUM4:

				if((now_winner==0)&&(total_winner==0)&&(FallFlag==0)){
				boyPush();
				}
				break;
			case KEY_NUM6:
				if((now_winner==0)&&(total_winner==0)&&(FallFlag==0)){
				girlPush();
				}
				break;
			case KEY_NUM5:
				if(start==0){
					start=1 ;
                                        break;
				}
                                
                                if(start==1&&(index==2||index==3)){
                                    start=0 ;
                                }
//				单局胜利画面按键接收
				if((total_winner==0)&&(now_winner!=0)){
					returnSGame();
					}
				else if(total_winner!=0){
					returnTGame();
				}
				break;
                            case KEY_NUM2:
//                             case Canvas.UP:
                                if(start==0){
                                    if(index==1)
                                        index=3;
                                    else
                                        index=index-1 ;
                                }
                                break;
//                            case Canvas.DOWN:
                            case KEY_NUM8:
                                if(start==0){
                                    if(index==3)
                                        index=1 ;
                                    else
                                        index=index+1 ;
                                }
                                break;
				}//end case
			}//end keyPressed
	}//end class

⌨️ 快捷键说明

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