亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? game.c

?? brew游戲 適合初學者學習 brew游戲 適合初學者學習
?? C
?? 第 1 頁 / 共 3 頁
字號:
                           NULL,                // No clipping
                           IDF_ALIGN_CENTER | IDF_ALIGN_MIDDLE);
}
static void update_map(CGametype * pMe)
{
 int timer=100;
 
 		if(!pMe->gameover)
 		{
 			 pMe->block_y++;
 		        if(CanPut(pMe)){
			            DrawMap(pMe);

			         
			       }
			    else
			    {
			    	pMe->block_y--;
			    	PutBlock(pMe); 
				GenerateNew(pMe);
				DrawMap(pMe);
			    }
		timer=300-pMe->dels*4;
		timer=timer>100?timer:100;
		ISHELL_SetTimer(pMe->a.m_pIShell, 300, (PFNNOTIFY) update_map, (CGametype *) pMe);
		}
		else
		{
		
			Gameover(pMe,pMe->r_color,pMe->g_color,pMe->b_color);
			if(pMe->b_color==0&&pMe->g_color==0&&pMe->r_color==0)  
			{
				ISHELL_CancelTimer(pMe->a.m_pIShell, (PFNNOTIFY) update_map, (CGametype *) pMe);
			}
			else
			{
				
				pMe->r_color=pMe->r_color*4/5;
				pMe->g_color=pMe->g_color*4/5;
				pMe->b_color=pMe->b_color*4/5;
				ISHELL_SetTimer(pMe->a.m_pIShell, 200, (PFNNOTIFY) update_map, (CGametype *) pMe);
			}
		}
		IDISPLAY_Update (pMe->a.m_pIDisplay);
}
//=======================================


/*===========================================================================

FUNCTION: AEEClsCreateInstance

DESCRIPTION
	This function is invoked while the app is being loaded. All Modules must provide this 
	function. Ensure to retain the same name and parameters for this function.
	In here, the module must verify the ClassID and then invoke the CGametype_New() function
	that has been provided in AEEAppGen.c. 

   After invoking AEEApplet_New(), this function can do app specific initialization. In this
   example, a generic structure is provided so that app developers need not change app specific
   initialization section every time except for a call to InitAppData(). This is done as follows:
   InitAppData() is called to initialize AppletData instance. It is app developers 
   responsibility to fill-in app data initialization code of InitAppData(). App developer
   is also responsible to release memory allocated for data contained in AppletData -- this can be
   done in FreeAppData().

PROTOTYPE:
	int AEEAppCreateInstance(AEECLSID clsID, IShell* pIShell, IModule* pIModule,IApplet** ppApplet)

PARAMETERS:
	clsID: [in]: Specifies the ClassID of the applet which is being loaded

	pIShell: [in]: Contains pointer to the IShell interface. 

	pIModule: pin]: Contains pointer to the IModule interface to the current module to which
	this app belongs

	ppApplet: [out]: On return, *ppApplet must point to a valid AEEApplet structure. Allocation
	of memory for this structure and initializing the base data members is done by AEEApplet_New().

DEPENDENCIES
  none

RETURN VALUE
  SUCCESS: If the app needs to be loaded and if AEEApplet_New() invocation was successful
  EFAILED: If the app does not need to be loaded or if errors occurred in AEEApplet_New().
  If this function returns FALSE, the app will not be loaded.

SIDE EFFECTS
  none
===========================================================================*/
int AEEClsCreateInstance(AEECLSID ClsId,IShell * pIShell,IModule * pMod,void ** ppObj)
{
   CGametype *pMe;
	*ppObj = NULL;
		
   if(AEEApplet_New( sizeof(CGametype),                  // Size of our private class
                     ClsId,                              // Our class ID
                     pIShell,                            // Shell interface
                     pMod,                               // Module instance
                     (IApplet**)ppObj,                   // Return object
                     (AEEHANDLER)game_HandleEvent, // Our event handler
                     NULL))                              // No special "cleanup" function
   {
	   pMe=*ppObj;
	   if(game_InitApp(pMe))
		   return(AEE_SUCCESS);
   }
      

	return (EFAILED);
}

/*===========================================================================

FUNCTION game_HandleEvent
  
DESCRIPTION
   This is the EventHandler for this app. All events to this app are handled in this
   function. All APPs must supply an Event Handler.  

   Note - The switch statement in the routine is to demonstrate how event handlers are 
   generally structured.  However, realizing the simplicity of the example, the code could
   have been reduced as follows:

   if(eCode == EVT_APP_START){
      IDISPLAY_DrawText();
      IDISPLAY_Update();
      return(TRUE);
   }
   return(FALSE);

   However, while doing so would have demonstrated how BREW apps can be written in about 8
   lines of code (including the app creation function), it might have confused those who wanted 
   a bit more practical example.

   Also note that the use of "szText" below is provided only for demonstration purposes.  As 
   indicated in the documentation, a more practical approach is to load text resources
   from the applicaton's resource file.

   Finally, note that the ONLY event that an applet must process is EVT_APP_START.  Failure
   to return TRUE from this event will indicate that the app cannot be started and BREW
   will close the applet.
    
PROTOTYPE:
   boolean game_HandleEvent(IApplet * pi, AEEEvent eCode, uint16 wParam, uint32 dwParam)
      
PARAMETERS:
   pi: Pointer to the AEEApplet structure. This structure contains information specific
   to this applet. It was initialized during the AppCreateInstance() function.
        
   ecode: Specifies the Event sent to this applet
          
   wParam, dwParam: Event specific data.
            
DEPENDENCIES
   none
              
RETURN VALUE
   TRUE: If the app has processed the event
   FALSE: If the app did not process the event
                
SIDE EFFECTS
   none
===========================================================================*/
static boolean game_HandleEvent(CGametype * pMe, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{  
	


   switch (eCode){
      case EVT_APP_START:  
     
	  	initialmemory(pMe);
		GenerateNew(pMe);
        DrawMap(pMe);
        IDISPLAY_Update (pMe->a.m_pIDisplay);
       
        ISHELL_SetTimer(pMe->a.m_pIShell, 300, (PFNNOTIFY) update_map, (CGametype *) pMe);
		return(TRUE);
	  case EVT_APP_RESUME:
			ISHELL_SetTimer(pMe->a.m_pIShell, 300, (PFNNOTIFY) update_map, (CGametype *) pMe);
            restorememory(pMe);
			return(TRUE);			
	  case EVT_APP_SUSPEND:
      case EVT_APP_STOP:
	  ISHELL_CancelTimer(pMe->a.m_pIShell, (PFNNOTIFY) update_map, (CGametype *) pMe);
         return(TRUE);

	  case EVT_KEY:
		switch (wParam)
         {
			case AVK_CLR:
		       ISHELL_CancelTimer(pMe->a.m_pIShell, (PFNNOTIFY) update_map, (CGametype *) pMe);
               return(FALSE);
				
			case AVK_UP:
				if(!pMe->gameover) 
					{
						pMe->a0++;
            					RotateBlock(pMe);
          					DrawMap(pMe);
					}
				
				break;
			case AVK_DOWN:
 		       if(pMe->gameover)
             		break;
               else
               	{
               	  while (CanPut(pMe)) 
               	  	{
			        //DrawMap(pMe);
					pMe->block_y++;
					//IDISPLAY_Update (pMe->a.m_pIDisplay);
					};
			       pMe->block_y--; 
			       PutBlock(pMe); 
				GenerateNew(pMe);
				DrawMap(pMe);

               	}
				break;
			case AVK_LEFT:
				 if(!pMe->gameover)
				 	{	
				 		pMe->a0++;
          					pMe->block_x--; 
						if (!CanPut(pMe)) pMe->block_x++;
						DrawMap(pMe);
					}
				break;
			case AVK_RIGHT:
				if(!pMe->gameover)
					{
						pMe->a0++;
          					pMe->block_x++; 
						if (!CanPut(pMe)) pMe->block_x--;
          					DrawMap(pMe);   
					}    
				break;
			
			}

         IDISPLAY_Update (pMe->a.m_pIDisplay);
		 return(TRUE);
				
		  

      default:
         break;
   }
   return(FALSE);
}
static boolean game_InitApp(CGametype * pMe)
{
	AEEDeviceInfo devInfo;
	ISHELL_GetDeviceInfo(pMe->a.m_pIShell,&devInfo);
		pMe->block_width=devInfo.cxScreen/(MAP_WIDTH+8);
		pMe->block_height=devInfo.cyScreen/(MAP_HEIGHT+4);
		pMe->block_width=pMe->block_height=pMe->block_width>pMe->block_height?pMe->block_height:pMe->block_width;
		if(devInfo.nColorDepth>2) 
#ifdef COLOR_DISPLAY
			pMe->frame_color=GREY_COLOR;
#else
		pMe->frame_color=RGB_BLACK;
#endif
		  pMe->difficult_level=7;
	SETAEERECT(&pMe->m_Rect,0,0,devInfo.cxScreen,devInfo.cyScreen);
	pMe->a0=0;
	pMe->dels=0;
	pMe->next_block=1;
	pMe->map_line=MAP_WIDTH;
    pMe->map_col=MAP_HEIGHT;
	pMe->block_x=0;
	pMe->block_y=5;
	pMe->gameover=0;
	pMe->score=0;
	pMe->pause=FALSE;
#ifdef COLOR_DISPLAY
	pMe->color_table[0]=RGB_NONE;
	pMe->color_table[1]=RED_COLOR;
	pMe->color_table[2]=BLUE_COLOR;
	pMe->color_table[3]=GREEN_COLOR;
	pMe->color_table[4]=LIGHT_RED_COLOR;
	pMe->color_table[5]=LIGHT_BLUE_COLOR;
	pMe->color_table[6]=DARK_GREEN_COLOR;
	pMe->color_table[7]=ORANGE_COLOR;
	pMe->color_table[8]=PURPLE_COLOR;
	pMe->color_table[9]=YELLOW_GREEN_COLOR;
    pMe->r_color=0;
	pMe->g_color=128;
	pMe->b_color=255;
#else
	pMe->color_table[0]=RGB_BLACK;
	pMe->color_table[1]=RGB_BLACK;
	pMe->color_table[2]=RGB_BLACK;
	pMe->color_table[3]=RGB_BLACK;
	pMe->color_table[4]=RGB_BLACK;
	pMe->color_table[5]=RGB_BLACK;
	pMe->color_table[6]=RGB_BLACK;
	pMe->color_table[7]=RGB_BLACK;
	pMe->color_table[8]=RGB_BLACK;
	pMe->color_table[9]=RGB_BLACK;
    pMe->r_color=225;
	pMe->g_color=225;
	pMe->b_color=225;
#endif
	return TRUE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线观看一区| 亚洲第一会所有码转帖| 国产无遮挡一区二区三区毛片日本| 欧美日韩国产不卡| 欧美三级视频在线观看| 在线精品视频一区二区| 在线一区二区三区四区五区 | 欧美日本一区二区三区| 欧美日韩综合在线| 欧美亚洲自拍偷拍| 在线观看日产精品| 欧美伊人久久大香线蕉综合69| 欧美视频精品在线| 欧美精品色一区二区三区| 日韩视频在线观看一区二区| 日韩精品一区二区三区视频播放| 日韩一级二级三级精品视频| 日韩精品一区国产麻豆| 日本一区二区三区在线观看| 国产精品萝li| 一区二区三区自拍| 亚洲mv在线观看| 另类小说欧美激情| 国产精品99久久久久| 成人国产精品免费观看动漫 | 久久麻豆一区二区| 国产三级一区二区三区| 中文字幕视频一区| 亚洲成人第一页| 精品在线免费观看| 成人午夜视频在线观看| 欧美在线一二三四区| 欧美电影一区二区| 久久综合色综合88| 椎名由奈av一区二区三区| 亚洲国产精品久久人人爱| 美女性感视频久久| 成人免费观看av| 欧美日韩中文国产| 精品国产99国产精品| 成人欧美一区二区三区黑人麻豆| 性感美女久久精品| 国产精品一区二区你懂的| 日本道色综合久久| 精品国产伦一区二区三区观看方式 | 在线观看一区日韩| 精品欧美一区二区在线观看 | 美国毛片一区二区| 99综合影院在线| 91精品国产黑色紧身裤美女| 国产丝袜欧美中文另类| 午夜影院在线观看欧美| 国产成人日日夜夜| 欧美日韩国产首页在线观看| 国产偷国产偷亚洲高清人白洁| 亚洲精品videosex极品| 九一九一国产精品| 在线观看免费亚洲| 国产三级精品三级| 丝袜国产日韩另类美女| 成人精品免费看| 这里只有精品免费| 亚洲三级在线观看| 国内精品国产成人国产三级粉色| 欧美在线免费播放| 国产精品嫩草99a| 久久精品国产第一区二区三区| 色域天天综合网| 国产性色一区二区| 美腿丝袜亚洲三区| 欧美日韩一区小说| 国产精品久线观看视频| 久久av资源站| 制服丝袜亚洲播放| 一区二区三区国产| 成人黄色小视频在线观看| 欧美一二区视频| 亚洲高清视频的网址| 99久久久久久99| 国产欧美va欧美不卡在线| 日本亚洲电影天堂| 欧美日韩电影一区| 亚洲天堂福利av| 成人亚洲一区二区一| 欧美r级在线观看| 视频在线观看一区二区三区| 91麻豆国产福利在线观看| 国产精品国产成人国产三级| 国产精品亚洲午夜一区二区三区 | 欧美日韩电影一区| 尤物在线观看一区| 色综合天天综合色综合av| 中文字幕精品一区二区三区精品| 麻豆精品久久精品色综合| 88在线观看91蜜桃国自产| 亚洲福利电影网| 91福利资源站| 一区二区激情小说| 色一情一伦一子一伦一区| 亚洲丝袜美腿综合| 99精品欧美一区二区蜜桃免费| 国产精品日产欧美久久久久| 国产69精品久久久久777| 亚洲精品一区二区三区在线观看| 免费精品视频在线| 日韩视频免费直播| 激情综合网av| 久久久精品日韩欧美| 国产99久久久久久免费看农村| 国产网红主播福利一区二区| 懂色av一区二区在线播放| 国产拍揄自揄精品视频麻豆| 粉嫩蜜臀av国产精品网站| 中文乱码免费一区二区| 成人app下载| 中文字幕在线观看不卡| 一本到一区二区三区| 亚洲成人黄色小说| 日韩欧美亚洲一区二区| 精品一区二区三区免费毛片爱| 久久久久久一二三区| 成人夜色视频网站在线观看| 亚洲三级在线观看| 欧美日韩国产经典色站一区二区三区| 三级久久三级久久| 337p日本欧洲亚洲大胆色噜噜| 国产成人在线观看免费网站| 国产精品久久久99| 91福利社在线观看| 麻豆精品蜜桃视频网站| 欧美极品美女视频| 色综合久久九月婷婷色综合| 五月天一区二区| 欧美精品一区在线观看| 成人h版在线观看| 亚洲曰韩产成在线| 精品日韩在线观看| 成人激情小说网站| 亚洲国产精品一区二区www| 精品人在线二区三区| 99国产精品久久久久| 丝袜美腿成人在线| 欧美国产日韩在线观看| 欧美日韩国产美女| 夫妻av一区二区| 亚洲成人免费电影| 亚洲国产成人一区二区三区| 色噜噜狠狠一区二区三区果冻| 美腿丝袜亚洲色图| 亚洲色图视频网站| 日韩精品一区二区三区四区| 99久久国产免费看| 日韩成人午夜精品| 国产精品久久久久影院老司| 欧美日韩国产精选| 国产成a人无v码亚洲福利| 婷婷中文字幕一区三区| 国产欧美一二三区| 91 com成人网| 91免费版在线| 精品一区二区成人精品| 一区二区三区波多野结衣在线观看| 精品久久久三级丝袜| 日本道精品一区二区三区| 国产呦精品一区二区三区网站| 一区二区三区日本| 国产欧美精品在线观看| 欧美精品777| 91首页免费视频| 国产一区二区免费在线| 午夜欧美电影在线观看| 国产精品免费人成网站| 日韩三级视频中文字幕| 色哟哟国产精品| 成人午夜电影小说| 激情图片小说一区| 婷婷国产在线综合| 亚洲激情五月婷婷| 国产精品久久久久一区| 久久亚洲精华国产精华液| 欧美一区二区三区在线观看 | 欧美一级日韩免费不卡| 色哦色哦哦色天天综合| 国产成人精品三级麻豆| 黄色小说综合网站| 日本网站在线观看一区二区三区| 一区二区免费看| 亚洲人成精品久久久久久| 亚洲国产精品精华液ab| 国产精品免费观看视频| 欧美一区二区三区视频在线| 91福利资源站| 91丝袜国产在线播放| 成人精品视频.| 国产99久久久国产精品潘金| 精品一区二区在线播放| 乱一区二区av| 加勒比av一区二区| 激情欧美日韩一区二区| 另类小说色综合网站|