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

📄 xiyou.java

📁 HappyTreeFriends手机游戏的源代码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:

        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();
    }



    //the tralier before loading into mainmenu
   public static final int TEST_SCENE_INDEX = 9;
   public static final int PRELUDE_SCENE_INDEX = 10;
	

 	
    
	
    public static void InitializePrelude()  
    	{
	    	 try
		{
		    if ((s_ctrGameStatus & 1) != 0)
			Debug.Mem("begin: " + s_ctrGameStatus);
				
		    switch (s_ctrGameStatus)
		    {
		        case 1:
				Jiaose.InitPrelude();
				InitSound();

		
/*				
				LoadSounds(SOUND_INMENU);
//*/
			    break;

			case 3:	
	                   Jiaose.LoadGlobalData();
                         
			   break;
			 case 5:	
		
                          LoadMap(PRELUDE_SCENE_INDEX);
	                   InitializeCamera();	

			     Jiaose.PRELUDE_MAP_W = ((LAST_SCENE_W_BY_TILE ) << s_tileBits) / 5;	
					   
	                  InitializeBgHuanchong();

			   break;  
	        
	                case 7:
				InitSmallMap();
			    

			   break;

		        case 9:
	                    Jiaose.LoadScene(PRELUDE_SCENE_INDEX);
			    break;
			case 11:

			    	Debug.Mem("a: "  );		

	        	    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.s_preludeMapId * Jiaose.PRELUDE_MAP_W + Jiaose. PRELUDE_OFFSET_X, 0, 0, true);
	                   
		           
		            break;

		        case 15:
		            SetGameStatus(DGameStatus.GS_PRELUDE);
			     s_splash = null;		
		            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 final int MAIN_SCENE_INDEX = 9;

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

			    stopSound();

  
			     
			    
			   
			    break;

			case 3:			

			   break;

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

			case 7:

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

			
			case 11:
				
			     LoadMap(MAIN_SCENE_INDEX);
			    break;  
                     case 13:

	                   InitializeCamera();
			    break;
			case 15:	
	                    Jiaose.LoadScene(MAIN_SCENE_INDEX);
			    break;

			case 17:
	        	    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 19:
			    LoadStrings(DWorld.STR_BLOCK_ID_MENU);

			    m_imageData = new int[DATA_SIZE_TMP];   //font 14
			    s_imgPals = new int[2][256];
			    s_menuArrow = createImageFormGli("/interface.gli", 0 , true);
			    //s_menuArrow = Image.createImage("/interface.png");	
			   break;

		        case 21:
                         s_imgFont[1] = createImageFormGli("/font_14_01.gli" , 0 , true);
			    break;

			case 23:
                         s_imgFont[2] = createImageFormGli("/font_11.gli" , 0 , true);
		          break;

			case 25:
                        
                         s_imgFont[3] = createImageFormGli("/font_10.gli" , 0 , true);	
			   m_imageData = null;
			   s_imgPals = null;
		          break;

				  

			

		        case 27:
			     SheJintou(0 , 0 , 0, true);;		
		            SetGameStatus(DGameStatus.GS_MAIN_MENU);
			     SetMenuStatus(MS_DEFAULT);	
			 
		            break;

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

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


	//for free menu resource 
	public static void FreeMenuRes()
		{
			  s_menuBg = null;
			s_menuBg2 = null;
			s_menuArrow = null;
			//s_imgFont[0] = null;
			s_imgFont[1] = null;
			s_imgFont[2] = null;
			s_imgFont[3] = null;


			 s_splash=null;
			 s_interfaceFromGLI = null;
			//FreeSounds();
		}

       public static final int END_GAME_SCENE_INDEX = 11;

	public static void InitEnd()
		{
			 try
			{
			    if ((s_ctrGameStatus & 1) != 0)
				Debug.Mem("begin: " + s_ctrGameStatus);
					
			    switch (s_ctrGameStatus)
			    {
			        
		        
		                case 1:
				      FreeMenuRes();	
				      FreeBgHuanchong(); 		  	  
      					s_splash = Image.createImage("/chengsmall.png");


					Donghua.FreeAnimation();		
				   break;

	                     case 3:
		                   LoadMap(END_GAME_SCENE_INDEX);
				     Jiaose.s_level = 9;
				     SaveOrLoad(true); 

		                   InitializeCamera();
						   
				    break;
				case 5:
	                          //InitializeBgHuanchong();
	                          LoadStrings(DWorld.STR_BLOCK_ID_MENU);
					break;
				case 7:	
		                    Jiaose.LoadScene(END_GAME_SCENE_INDEX);
				    break;

				case 9:
		        	    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 11:
				     SheJintou(0 , 0 , 0, true);;	
				     InitCameralStart();		 
			            SetGameStatus(DGameStatus.GS_END_GAME);	
			            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 InitSmallMap()
		{
			try
				{

					img_smallMap = Image.createImage("/chengsmall.png");


			 		
					s_gBgHuanchong.setClip(0, 0 , PINGMUDDD.sssCHUANNN_WIDTH , PINGMUDDD.sssCHUANNN_HEIGHT); 
					s_gBgHuanchong.drawImage(img_smallMap , 0 , 0 , 0);
					

					img_smallMap = null;
			}
			catch(Exception e)
				{
				}

		}


//do gli special 

    static int m_imageData[];
    static int s_imgPals[][];

    public static Image createImageFormGli(String gliName , int palIndex, boolean needCreate) throws Exception
    {
        int img_w,img_h;
        int imageSize;
        int palBits;
        int maskColor;

        DataInputStream dis = new DataInputStream(gliName.getClass().
                                                  getResourceAsStream(gliName));
        dis.skipBytes(4); // skipped flag of GLI
        img_w = dis.readUnsignedShort();//.readUnsignedByte();//readUnsignedShort
        img_h = dis.readUnsignedShort();
        dis.skipBytes(1);
        palBits = dis.readUnsignedByte();
        maskColor = 0xFF >> (8 - palBits);

        imageSize = dis.readInt();

        int palNum = dis.readUnsignedByte();
        int palLen = dis.readUnsignedByte();
        int palColor;

        s_imgPals = new int[palNum][];

        for (int i=0; i<palNum; i++)
        {
                s_imgPals[i] = new int[palLen];
            for (int ii=0; ii<palLen; ii++)
            {
                palColor = dis.readInt();
                // remove transparent
                if ((palColor & 0xFF000000) == 0)
                    palColor = 0;
                s_imgPals[i][ii] = palColor;//Device.RGB4444to8888(palColor);
            }
        }

        int pos = 0;
        int size = img_w * img_h;
        int data;
        int shumu;
        int color;
        int wend;
        //m_imageData = new int[size];
        while (pos < size)
        {
            data = dis.readUnsignedByte() & 0xFF;
            shumu = (data >> palBits) + 1;
            color = s_imgPals[palIndex][data & maskColor];
            //if (color != 0)
            {
                wend = pos + shumu;
                while (pos < wend)
                {
                    m_imageData[pos++] = color;
                }
            }
            //else pos += shumu;
        }
		

⌨️ 快捷键说明

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