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

📄 xiyou.java

📁 HappyTreeFriends手机游戏的源代码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
									else
										tmp = "";
									InsertName(tmp, Jiaose.s_score[Jiaose.TYPE_TOOTHY] + Jiaose.s_score[Jiaose.TYPE_PRINCESS]);
					                            SaveOrLoad(true);			
					                            SetGameStatus(DGameStatus.GS_HIGHSCORE_INGAME);
					                        }
								  else if(charoffset == 26)
							      	{
							      	       if(s_namePos > 0)s_namePos--;
							      		s_name[s_namePos] = 0;
									
							      	}
								  else if(s_namePos < NAME_LEN)
								 {
								  	 s_name[s_namePos] = (byte) ('A'+charoffset);
									 s_namePos++;
								  }
								
							}
							
					}	
//				else if (IsKeyPressed(GK_SOFT_LEFT) )
//					{
//						SetMenuStatus(MS_MAINMENU);
//					}	
				break;
              			
		case DGameStatus.GS_HIGHSCORE_INGAME:
			       limitCamera();

		  FILLSCREEN(COLOR_BLUE_WALL);

				s_g.setColor(COLOR_YELLOW_BG);
				s_g.setClip(0,0,PINGMUDDD.sssCHUANNN_WIDTH , PINGMUDDD.sssCHUANNN_HEIGHT);
			       //s_g.fillRoundRect( MS_OPTION_BG_X , INGAME_HIGHSCORE_Y, MS_OPTION_BG_W, MS_OPTION_BG_H, MS_OPTION_BG_ARC_W, MS_OPTION_BG_ARC_W);
				
			       s_g.fillRoundRect( MS_OPTION_BG_X , INGAME_HIGHSCORE_Y, MS_OPTION_BG_W, MS_OPTION_BG_H, MS_OPTION_BG_ARC_W, MS_OPTION_BG_ARC_W);
				   
				//s_g.fillRoundRect( MS_OPTION_BG_X , INGAME_HIGHSCORE_Y, MS_OPTION_BG_W, MS_OPTION_BG_H, MS_OPTION_BG_ARC_W, MS_OPTION_BG_ARC_W);

				s_g.setColor(COLOR_BLUE_WALL);
//text about bg				
				s_g.fillRoundRect( PINGMUDDD.sssCHUANNN_WIDTH - GS_HIGHSCORE_W >> 1 , INGAME_HIGHSCORE_Y + 5 ,GS_HIGHSCORE_W, GS_HIGHSCORE_TITLE_H, 10, 10);
                            drawImageString(s_g,GetString(DWorld.STR_ID_HIGHSCORE),
        	           PINGMUDDD.sssCHUANNN_WIDTH >> 1, INGAME_HIGHSCORE_Y + 7, FONT_HUGE, IMG_FONT_CENTER,
        	           0);

//blue bg
				s_g.fillRoundRect( PINGMUDDD.sssCHUANNN_WIDTH - GER_MENU_W>> 1 , INGAME_HIGHSCORE_Y + 5 + GS_HIGHSCORE_TITLE_H + 3  ,GER_MENU_W, GS_HIGHSCORE_H, 10, 10);


				drawImageString(s_g, GetString(DWorld.STR_ID_HIGHSCORE),
        	           PINGMUDDD.sssCHUANNN_WIDTH >> 1, INGAME_HIGHSCORE_Y + 7, FONT_HUGE, IMG_FONT_CENTER,
        	           0);




			     for(int i = s_beginIndex ; i < s_beginIndex +  NAME_SHOW ; i++)
                          	{
                          	        String name = null;
                          	        if(s_scores[i] == 0)
                          	        	{
                          	        		name = "" + (i + 1);
											
                          	        	}
					else
						{
							name = "" + (i + 1) + "  " + s_names[i];
							drawImageString(s_g,  "" + s_scores[i],
        	           		HIGH_SCORE_SCORE_LEFT, MS_OPTION_BG_Y + 13+ MS_BOX_OFFSET_Y + (i -s_beginIndex)  * HIGH_SCORE_STEP_LINE, FONT_MINI, IMG_FONT_RIGHT,
        	          		 1);
						}
                          		drawImageString(s_g,  name,
        	           		HIGH_SCORE_NAME_LEFT, MS_OPTION_BG_Y + 13+ MS_BOX_OFFSET_Y +  (i -s_beginIndex)* HIGH_SCORE_STEP_LINE, FONT_MINI, IMG_FONT_LEFT,
        	          		 1);
                          	}
				 if (IsKeyPressed( GK_UP) )
				 	{

                                          s_beginIndex = changeValueLoop( --s_beginIndex , NAME_NUM - NAME_SHOW + 1 );					

				 	}
				 else  if (IsKeyPressed(GK_DOWN) )
				 	{
				 		 s_beginIndex = changeValueLoop( ++s_beginIndex , NAME_NUM - NAME_SHOW + 1 );		
				 	}
				DrawButtons(false ,false);		   
				if (IsKeyPressed(GK_A | GK_SOFT_RIGHT) )
					{

						 if(Jiaose.s_score[Jiaose.TYPE_TOOTHY] + Jiaose.s_score[Jiaose.TYPE_PRINCESS]  > Jiaose.SCORE_LIMIT_TO_NEXT_LEVEL)
						 	{
						 		Jiaose.s_level ++;
								Jiaose.s_levelSaved = Jiaose.s_level;
								SaveOrLoad(true);
								if(Jiaose.s_level == TOTAL_LEVEL)
								{
									SetGameStatus(DGameStatus.GS_END_GAME);
									break;
								}


								if(Jiaose.s_level % 3 == 0)
									{
										SetGameStatus(DGameStatus.GS_LOAD_GAME_RES);
										InitCameralStart();
										break;
									}
									
						 	}
						SetGameStatus(DGameStatus.GS_ACTION);
						Jiaose.PlayAgainInit();
						Jiaose.s_gameOver = false;
						ClearKey();
					}
				break;
		

        }

        s_ctrGameStatus++;
/*
       g.setClip(0 , 0 , 176 , 204);
	g.setColor(0);
	g.fillRect(0 , 0 , 176 , 20);
	g.setColor(0xffffff);
	g.drawString("  " + (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory() ), 5, 2 , 0);
	System.gc();
//*/
        shenJIIIIIIIKeyEnd();



    }
    catch (Exception e)
    {
    e.printStackTrace();
    }
    
    
    }

    // index for menu select
    public static int s_selectedIndex;
  
    private static int changeValueLoop ( int value, int max )
    {
        return ( value + max ) % max;
    }

  
    private static void changeSelect(int menuLength/*, int screenLength*/)
    {
        if (IsKeyPressed(GK_DOWN))
        {
            s_selectedIndex = changeValueLoop( ++s_selectedIndex , menuLength );
        }
        else if (IsKeyPressed(GK_UP))
        {
            s_selectedIndex = changeValueLoop( --s_selectedIndex , menuLength );
        }
    }


//FOR LOADING LINE PRECISELY
    public static final int LOADING_GAME_RES_DURANTION = 25;
    public static final int LOADING_TRAILER_RES_DURANTION = 15;
    public static final int LOADING_MENU_RES_DURANTION = 27;	
    public static final int LOADING_END_RES_DURANTION = 11;	

//for create image from gli


    public static final int DATA_SIZE_TMP = 5418;


   //for mini version load sounds
    public static boolean s_isFirstRun = true;

    private static final int SLEEP_TIME = 50;




	

    public static void InitializeActionPhase()
    {

	//Jiaose.s_level = 8;
        try
	{
	    if ((s_ctrGameStatus & 1) != 0)
		Debug.Mem("begin: " + s_ctrGameStatus);
			
	    switch (s_ctrGameStatus)
	    {
	        case 1:
				

		    break;

		case 3:

			s_isPause = false;   
			Jiaose.s_gameOver = false;
			Jiaose.InitPlayAgain();	
			FreeMenuRes();	 
			FreeStringInGame();
			
			break;


		case 5:					
                  // Jiaose.LoadGlobalData();
	        Debug.Mem("LoadGlobalData: " + s_ctrGameStatus);         
                   LoadMap(Jiaose.s_level);

          	 Debug.Mem("LoadMap: " + s_ctrGameStatus);

                  				   
		   break;
        
                case 7:
                    img_smallMap = Image.createImage("/chengsmall.png");

					

                  
			 InitializeCamera();
		   break;

	        case 9:
                    Jiaose.LoadScene(Jiaose.s_level);
		   break;

		case 11:
        	    Donghua.LoadAnimations(Jiaose.s_sceneAnimationMask);
        	    Jiaose.SetAnims();			
                    for (int i = 0; i < Donghua.s_anims.length; i++)
                    {          
                        if (Donghua.s_anims[i] != null && Donghua.s_anims[i].m_imageFormat == Donghua.IMAGE_FORMAT_GLI)
                        {
                            Donghua.s_anims[i].CreateScenePals();
                        }
                    }
	            break;

		case 13:
	            //SheJintou(Jiaose.s_ajiaoses[0], true, true);
                  SheJintou(Jiaose.CAM_START_X, Jiaose.CAM_START_Y, 0, true);
		    InitCameralStart();		
	            LoadStrings(DWorld.STR_BLOCK_ID_GAME);
	            break;

		case 15:
		
		     s_menuArrow = Image.createImage("/interface.png");	

		    break;

		case 17:
                     s_imgFont[2] = Image.createImage("/font_11.png");
		    break;

		case 19:
                     s_imgFont[1] = Image.createImage("/font_14_01.png");
	            break;

		case 21:
                     
                     s_imgFont[3] = Image.createImage("/font_10.png");						 
	            break;

		case 23:
			
			s_interfaceFromGLI = Image.createImage("/menu_interface.png");

			break;
			
		    
			
	        case 25:
	            SetGameStatus(DGameStatus.GS_ACTION);
	            break;

	        default:
	            System.gc();
	            Thread.sleep(SLEEP_TIME);
	            break;
    	    }

	    if ((s_ctrGameStatus & 1) != 0)
	        Debug.Mem("end: " + s_ctrGameStatus);
	}
	catch (Exception e)
	{
            e.printStackTrace();
	}
    }


	
    public static void shenJIIIIIIIActionPhase()
    {
        if (Debug.SHOW_TIME_COST)
            Debug.s_time1 = System.currentTimeMillis();
            
        // here update AI like
	Jiaose.shenJIIIIIIIPlayer();
		if((s_ctrGameStatus % Jiaose.WIND_TICK_ZHEN == 0))
	Jiaose.RandomWindPower();  
        	
	

        if (Debug.SHOW_TIME_COST)
            Debug.s_time1 = System.currentTimeMillis() - Debug.s_time1;

        if (Debug.SHOW_TIME_COST)
            Debug.s_time2 = System.currentTimeMillis();

        shenJIIIIIIICamera();
        
        if (Debug.SHOW_TIME_COST)
            Debug.s_time2 = System.currentTimeMillis() - Debug.s_time2;

    }


    public static void DrawActionPhase()
    {
        if (Debug.SHOW_TIME_COST)
            Debug.s_time3 = System.currentTimeMillis();

        DrawMapFast(s_jingtouX, s_jingtouY);

        if (Debug.SHOW_TIME_COST)
            Debug.s_time3 = System.currentTimeMillis() - Debug.s_time3;

        if (Debug.SHOW_TIME_COST)
            Debug.s_time4 = System.currentTimeMillis();

	if (Debug.SWITCH_ACTOR_AND_MAP_DRAWING)
	{
        if (Xiyou.IsKeyPressed(Xiyou.GK_C))
            Debug.ifShowJiaoses = !Debug.ifShowJiaoses;
		
        if (Debug.ifShowJiaoses)
            Jiaose.DrawJiaosess(s_g, s_jingtouX, s_jingtouY);
	}
	else
	{
            Jiaose.DrawJiaosess(s_g, s_jingtouX, s_jingtouY);
        }	
	
        if (Debug.SHOW_TIME_COST)
            Debug.s_time4 = System.currentTimeMillis() - Debug.s_time4;

        if (Debug.SHOW_TIME_COST)
            Debug.s_time5 = System.currentTimeMillis();

        //Draw interface here
        DrawInterface();

        if (Debug.SHOW_TIME_COST)
            Debug.s_time5 = System.currentTimeMillis() - Debug.s_time5;

        if (Debug.SHOW_TIME_COST)
            Debug.ShowRate();		

	 if(s_gameStatus == DGameStatus.GS_ACTION)	
		Jiaose.ExeGameOver();
    }


				

    //for menu
    public static void InitialMenu()
    	{
    		 try
		{
		    if ((s_ctrGameStatus & 1) != 0)
			Debug.Mem("begin: " + s_ctrGameStatus);
				
		    switch (s_ctrGameStatus)
		    {
		        case 1:
	                  FreeMenuRes();
			    img_smallMap = null;		  
			    FreeBgHuanchong(); 		  

                         Donghua.FreeAnimationAndImg();	

			    Jiaose.FreeJiaosess();			 
	
  			    if(s_isFirstRun)
  			    	{
					
 			   		 LoadSounds(); 	
  			    	}

			    else
			    	{
			    		 stopSound();
			    	}

  
			     
			    
			   
			    break;

			case 3:			


	                 Jiaose.LoadGlobalData();

			   break;

			case 5:
				 Jiaose.FreeBlood();	
			    SaveOrLoad(false);	
			    
				break;

			case 7:
				s_menuBg = Image.createImage("/menu_bg.png");	
				break;
			case 9:

				break;
			case 11:
				
			    break;  
                     case 13:

			case 15:	
				
			    break;

⌨️ 快捷键说明

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