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

📄 main.java

📁 一款直版动作过关游戏
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
				if(Lv == 0 )
				{			
				ImageTools it = new ImageTools();
				random = new Random();
				img_Pause = it.getImage("menu1");
				img_GameJM = it.getImage("jiemian");
				img_distance = it.getImage("juli");
				img_Npc = it.getImage("Npc");
				img_choose = it.getImage("choose");
				img_GameOver = it.getImage("gameover");
				img_temp = it.getImage("run");
				sp_role = new sprite(img_temp,roleW,roleH,0);
				
				img_temp = it.getImage("speed");	
				sp_Speed = new sprite(img_temp,39,35,0);
				sp_Speed.setPosition(2, 172);
				
				img_temp = it.getImage("muscle");				
				sp_muscle = new sprite(img_temp,11,11,0);
				sp_muscle.setPosition(6, 37);
				
				img_temp = it.getImage("jump");	
				sp_jump = new sprite(img_temp,15,24,0);
				sp_jump.setPosition(80, 80);
				
				img_temp = it.getImage("state");	
				sp_state = new sprite(img_temp,29,28,0);
				sp_state.setPosition(0, 0);
				npcVector = new Vector();
				NumTools = new NumImgTools(it.getImage("Number"), 12, 22);
				it = null;
				}
				lm = null;
				lm = new layerManager();
				lm.append(sp_role);
				InitGame();
				System.out.println("Main.Load()");
				lm.append(tl_way);
				LoadOver = true;
				}
				break;
			case LoadEnd:
				Image img = null;
				try {
					 img = Image.createImage("/pic/end.png");
				} catch (IOException e) {
					e.printStackTrace();
				}
				sp_end = new sprite(img,176,112,0);
				SystemTime = 0;
				FlowState = StateWin;
				break;
		}
	}
	private void Free()
	{
		switch (FreeState) 
		{
			case FreeLogo :
				ripple = null;
				img_Logo1 = null;
				img_Logo2 = null;
				System.gc();
				break;
				
			case FreeMenuData:
				img_Menu = null;
				img_MenuStr = null;
				sp_MenuStr = null;
				System.gc();
				break;
				
			case FreeMainData:
				System.gc();
				break;
				
		}
	}
	protected void paint(Graphics g) 
	{
		bg.setColor(255,255,255);
		bg.fillRect(0, 0, ScrWidth, ScrHeight);
		
		switch (FlowState) 
		{
			case StateLogo:
				DrawLogo1(bg);
				break;	
			case Loading:
				DrawLoading(bg);
				break;
			case StateMenu:
				DrawMenu(bg);
				break;
			case StateHelp:
				DrawHelp(bg);
				break;
			case StateSet:
				DrawSet(bg);
				break;
			case StateMain:
				DrawMain(bg);
				break;
			case StateWin:
				DrawWin(bg);
				break;
			case StateOver:
				DrawOver(bg);
				break;	
			case StatePause:
				DrawPause(bg);
				break;
			case StateTop:
				DrawTop(bg);
				break;
		}
		g.drawImage(offBufferImage, 0,0, Graphics.LEFT|Graphics.TOP);
	}
	private void DrawLogo1(Graphics g)
	{
		g.setClip(0, 0, ScrWidth, ScrHeight);
		ripple.paintImageFade(g, LogoTime, 4, 2, img_Logo1, 10, 30, 5);
	}
	private void DrawMenu(Graphics g)
	{
		g.setColor(0,0,0);

		g.drawImage(img_Menu, 0, 0, 0);
		sp_MenuStr.paint(g);
			
	}
	private void DrawHelp(Graphics g)
	{
		g.setColor(0,0,0);
	}
	private void DrawSet(Graphics g)
	{
		g.setColor(0,0,0);
		g.fillRect(0, 0, ScrWidth, ScrHeight);
		g.setColor(255,255,255);
		g.drawString("声  音", ScrWidth/2-ft.stringWidth("声  音")/2, ScrHeight/2, 0);
	}
	private void DrawWin(Graphics g)
	{
		SystemTime++;
		sp_end.paint(g);
		if(SystemTime%10==0 && sp_end.getFrame()<5)
		{
			sp_end.nextFrame();
		}
	}
	private void DrawOver(Graphics g)
	{
		g.drawImage(img_GameOver, ScrWidth/2-img_GameOver.getWidth()/2, 0, 0);
	}
	private void DrawPause(Graphics g)
	{
		g.drawImage(img_Pause, -30, 0, 0);
		g.drawImage(img_choose, 30, MenuSdlcd*30+30, 0);
	}
	private void DrawTop(Graphics g)
	{
		g.setColor(147,159,128);
		g.drawString("积分排行榜", 0, 0, 0);
		g.drawString(ScnInputName.TopStr, 20, 20, 0);
	}
	private void DrawLoading(Graphics g)
	{
//		if(LoadIngNum<SystemTime)
//			LoadIngNum++;
		g.setColor(0,0,0);
//		g.drawRect(75, 100, 50, 15);
//		g.setColor(0,0,0);
//		g.fillRect(75, 100, LoadIngNum, 15);	
		SystemTime++;
		if(SystemTime >= 30)
		{
			SystemTime = 0;
			LoadOver = false;
			switch (LoadState) 
			{
				case LoadLogo:
					FlowState = StateLogo;
					break;
				case LoadMenuData:
					FlowState = StateMenu;
					break;
				case LoadMainData:
					FlowState = StateMain;
					break;
			}
		}
		g.drawString("Loading", ScrWidth/2-ft.stringWidth("Loading")/2, ScrHeight/2+50, 0);
	}
	public void input()
	{
		switch (FlowState) 
		{
			case StateHelp:
				KeyHelp(Key);
				break;
			case StateSet:
				KeySet(Key);
				break;
			case StateMain:
				KeyMain(Key);
				break;
			case StateWin:
				KeyWin(Key);
				break;
			case StateOver:
				KeyOver(Key);
				break;	
			case StatePause:
				KeyPause(Key);
				break;
			case StateTop:
				KeyTop(Key);
				break;
		}
	}
	public void keyPressed(int keyCode)
	{
		if(!keyLock)
		{
			Key = keyCode;
		switch (FlowState) 
		{
			case StateMenu:
				KeyMenu(keyCode);
				break;
				
			case StateMain:
				switch (keyCode) 
				{	
					case RightCom:
						if(FlowState == StateMain)
							FlowState = StatePause;
						else if(FlowState == StatePause)
							FlowState = StateMain;
						break;
	
					case Enter:
					case Num_5:
						if( NpcState == NPC.tree)
						{
							JumpNum5--;
						}
						else if(!Fly && powerSpeed)
						{
							RoleState = RoleJump;
							SystemTime = 0;
							Fly = true;
							keyLock = true;
							SpeedStat -=30;
						}
						
						break;
				}
				break;
			case StateOver:
				if(keyCode != 0)
				{
					FlowState = Loading;
					LoadState = LoadMainData;
				}
				break;
			
			}
		}
	}
	public void keyReleased(int keyCode) 
	{
		Key = 0;
	}
	public void keyRepeated(int keyCode)
	{
		Key = 0;
	}
	private void KeyMenu(int keyCode)
	{		
		
		switch (keyCode) 
		{
			case UP:	
			case Num_2:
				if(MenuSdlcd>0)
				{
					MenuSdlcd--;
					sp_MenuStr.prevFrame();
				}
				break;
	
			case DOWN:
			case Num_8:
				if(MenuSdlcd<sp_MenuStr.cols-1)
				{
					MenuSdlcd++;
					sp_MenuStr.nextFrame();
				}
				break;
				
			case Enter:
			case Num_5:
				switch (MenuSdlcd) 
				{
					case 0:
	//					FlowState = LoadMainData;
						FlowState = Loading;
						LoadState = LoadMainData;
						FreeState = FreeMenuData;
						break;
	
					case 1:
						FlowState = StateSet;
						break;
						
					case 2:
						FlowState = StateTop;
						mid.billBoard.update();
						ScnInputName.TopStr = mid.billBoard.showListTop3();
						break;
						
					case 3:
						mid.exitMID();
						Runing = false;
						break;
				}
				break;
		}
	}
	private void KeyHelp(int keyCode)
	{
		
	}
	private void KeySet(int keyCode)
	{
		if(keyCode == RightCom)
		{
			FlowState = StateMenu;
		}
	}
	private void KeyMain(int keyCode)
	{
		if(!fall && RoleState!=RoleReady && !keyLock)
		{
			switch (keyCode) 
			{
				case 0:

					if(RoleState<2)
						RoleState++;
					else if(RoleState>2)
						RoleState--;

					break;
					
				case LEFT:
				case Num_4:
					if(RoleState>0 )
						RoleState--;
					if(sp_role.x>60)
					{
					if(WindowsX>0 && sp_role.x-WindowsX<ScrWidth/2 )
					{
						WindowsX-=10;
						sp_role.move(-10,0);
					}
					else 
						sp_role.move(-10,0);
					}
				break;
		
				case RIGHT:
				case Num_6:
					if(RoleState<4 )
						RoleState++;
					
					if(sp_role.x+sp_role.getWidth()<WindowsX+ScrWidth)
					{
						if(WindowsX+ScrWidth<tl_way.getWidth()-10 && sp_role.x>WindowsX+ScrWidth/2 )
						{
							WindowsX+=10;
							sp_role.move(+10,0);
						}
						else 
							sp_role.move(+10,0);	
					}
	
					break;
				case UP:
				case Num_2:
					RoleState = 2;
					if(sp_role.y>50)
						sp_role.move(0,-5);
					break;
					
				case DOWN:
				case Num_8:
					RoleState=2;
					if(sp_role.y+sp_role.getHeight()<ScrHeight)
						sp_role.move(0,+5);
					if(Speed>7)
					{
						Speed--;
						SpeedStat-=5;
					}
					break;
			}
		}
		else if(NpcState == NPC.crad)
		{
			if(keyCode == Enter)
			{

			}
		}
	}
	private void KeyPause(int keyCode)
	{
		switch (keyCode) 
		{
			case UP:
				if(MenuSdlcd>0)
					MenuSdlcd--;
				break;
	
			case DOWN:
				if(MenuSdlcd<2)
					MenuSdlcd++;
				break;
			case Enter:
				switch (MenuSdlcd) 
				{
					case 0:
						FlowState = StateMain;
						break;
	
					case 1:
						break;
					case 2:
						FlowState = Loading;
						LoadState = LoadMenuData;
						FreeState = FreeMainData;
						Lv  = 0;
						break;
				}
				break;
//			case RightCom:
//				ThisState = StateMain;
//				break;
		}
	}
	private void KeyWin(int keyCode)
	{
		if(sp_end.getFrame()>=5 && keyCode !=0)
		{
			FlowState = Loading;
			LoadState = LoadMenuData;
			FreeState = FreeMainData;
			if(!InputName)
				checkScore();
		}
	}
	private void KeyOver(int keyCode)
	{
		
	}	
	private void KeyTop(int keyCode)
	{
		switch (keyCode) 
		{
			case RightCom:
				FlowState = StateMenu;
				break;
			case LeftCom:
				FlowState = StateMenu;
				break;
		}
	}
	private void GameFlow()
	{
		switch (FlowState) 
		{
			case Loading:                 //加载
				Free();
				Load();
				break;
				
			case StateLogo:             //LOGO运行
				LogoTime++;
				if(LogoTime>20)
				{
					FlowState = Loading;
					LoadState = LoadMenuData;
					FreeState = FreeLogo;
				}
				break;
			case StateMenu:
				break;
			case StateHelp:
				
				break;
			case StateSet:
				
				break;
			case StateMain:
				GameLogic();
				break;
				
			case StateWin:
				break;
				
			case StateOver:
				
				break;
		}		
	}
	public void NextLv()
	{
		Lv++;
		FlowState = Loading;
		LoadState = LoadMainData;
	}
	public void checkScore()    //检测Score
	{	
		InputName = true;
		scnInputName.clear();
		mid.dis.setCurrent(scnInputName);		
	}
	public void shake()
	{
		int temp = 3;
		shakeNum++;
		switch (RoleState) 
		{
			case RoleFall:
			case RoleFall2:
				if(shakeNum %2 == 0)
				{
					temp*=-1;
				}
				WindowsX+=temp;
				break;
		}
	}
	public void run() 
	{
		while (Runing) 
		{
			input();
			GameFlow();
				repaint(0, 0, ScrWidth, ScrHeight);
				serviceRepaints();
				try {
					Thread.sleep(100);
				} catch (InterruptedException e){
					e.printStackTrace();
				}
		}
	}		
}

⌨️ 快捷键说明

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