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

📄 menu_sub.c

📁 this puzzle game using BREW this puzzle game using BREW this puzzle game using BREW this puzzle g
💻 C
📖 第 1 页 / 共 2 页
字号:
 //======================================================
//颇老:  menu_sub.c
//
//林力: 览侩橇肺弊伐阑 困茄 荤侩磊 捞亥飘 备泅 颇老  
//
//汲疙:
//   备炼眉 冯(Room) 扁过捞 利侩等 览侩橇肺弊伐 备炼眉甫 
//   扁馆栏肺 荤侩磊 裹困狼 捞亥飘 贸府 窃荐 备泅 
//
//累己磊:
//   2006.02. 冠蛮刮(eacs@paran.com)
//======================================================

#include "std.h"
#include "menu_sub.h"

//#include "std.h"
//#include "menu_sub.h"
//#include "stdlib.h"

void AudioSpecProc(menu_sub * pMe, AEESoundPlayerCmdData * pCmdData)
{
	if(pCmdData->spSpec.fType == AEE_SOUNDPLAYER_FILE_MP3)
	{
		AECHAR buf[20];
		AECHAR * pFormat = L"Bitrate: %d K";

		AECHAR * version[5];
		AECHAR * sim_rate[11];
		AECHAR * channel[4];

		version[0] = L"VER_25";
		version[1] = L"VER_RESERVED";
		version[2] = L"VER_2";
		version[3] = L"VER_1";
		version[4] = L"VER_UNKNOWN";

		sim_rate[0] = L"RATE_UNKNOWN";
		sim_rate[1]	= L"RATE_8000";
		sim_rate[2]	= L"RATE_11025";
		sim_rate[3]	= L"RATE_12000";
		sim_rate[4]	= L"RATE_16000";
		sim_rate[5]	= L"RATE_22050";
		sim_rate[6]	= L"RATE_24000";
		sim_rate[7]	= L"RATE_32000";
		sim_rate[8]	= L"RATE_44100";
		sim_rate[9]	= L"RATE_48000";
		sim_rate[10] = L"RATE_LAST";

		channel[0] = L"CHANNEL_STEREO";
		channel[1] = L"CHANNEL_JOINT_STEREO";
		channel[2] = L"CHANNEL_DUAL";
		channel[3] = L"CHANNEL_SINGLE";

	//	IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, version[pCmdData->spSpec.MP3Spec.version], -1, 5, 40, 0, 0);

		if(pCmdData->spSpec.MP3Spec.bitrate == 0)
			WSPRINTF(buf, sizeof(buf), L"BitRate: Free");
		else
			WSPRINTF(buf,sizeof(buf), pFormat, pCmdData->spSpec.MP3Spec.bitrate);

	//	IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, buf, -1, 5, 55, 0, 0);
	//	IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, sim_rate[pCmdData->spSpec.MP3Spec.sampleRate], -1, 5, 70, 0, 0);
	//	IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, channel[pCmdData->spSpec.MP3Spec.channel], -1, 5, 85, 0, 0);
	//	IDISPLAY_Update(GetActiveDisplay(pMe));
	}
}

void VolumeProc(menu_sub * pMe, AEESoundPlayerCmdData * pCmdData)
{
	_D("VOLUME_CB: vol: %d", pCmdData->wVolume);
	if(pMe->bVolumeUp)
	{
		if(pCmdData->wVolume < 100)
			ISOUNDPLAYER_SetVolume(pMe->pSoundPlayer, pCmdData->wVolume + 10);
	}
	else
	{
		if(pCmdData->wVolume > 0)
			ISOUNDPLAYER_SetVolume(pMe->pSoundPlayer, pCmdData->wVolume - 10);
	}
}

void DoneProc(menu_sub * pMe, AEESoundPlayerCmdData * pCmdData)
{
	IDISPLAY_ClearScreen(GetActiveDisplay(pMe));
	IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, L"mp3 play done...", -1, 10, 20, NULL, 0);
	IDISPLAY_Update(GetActiveDisplay(pMe));
	pMe->bPlay = FALSE;
}

void SoundPlayer_CB(menu_sub * pMe, AEESoundPlayerCmd eCBType, AEESoundPlayerStatus eSPStatus, uint32 dwParam)
{
	AEESoundPlayerCmdData * pCmdData = (AEESoundPlayerCmdData *)dwParam;

	switch(eCBType)
	{
	case AEE_SOUNDPLAYER_PLAY_CB:
		switch(eSPStatus)
		{
		case AEE_SOUNDPLAYER_REWIND:
			_D(">>>>>>>>>>>REWIND [dw] %d", pCmdData->dwElapsedTime);
			break;
		case AEE_SOUNDPLAYER_FFORWARD:
			_D(">>>>>>>>>>FFORWARD [dw] %d", pCmdData->dwElapsedTime);
			break;
		case AEE_SOUNDPLAYER_PAUSE:
			_D(">>>>>>>>>>PAUSE [dw] %d", pCmdData->dwElapsedTime);
			break;
		case AEE_SOUNDPLAYER_RESUME:
			_D(">>>>>>>>>>RESUME [dw] %d", pCmdData->dwElapsedTime);
			break;
		case AEE_SOUNDPLAYER_AUDIO_SPEC:
			AudioSpecProc(pMe, pCmdData);
			break;
		case AEE_SOUNDPLAYER_DONE:
			DoneProc(pMe, pCmdData);
			break;
		}
		break;
	case AEE_SOUNDPLAYER_VOLUME_CB:
		if(eSPStatus == AEE_SOUNDPLAYER_SUCCESS)
			VolumeProc(pMe, pCmdData);
		break;
	}
}

//progress clear
void progress_clear(menu_sub * pMe){
	int i;
	AECHAR buf1[60];
	
	for(i = 0; i<=38; i++)
	{
		buf1[i] = ' ';
	}
	buf1[i] ='\0';
	IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, buf1, -1, pMe->game_data[15][1], pMe->game_data[15][2], NULL, 0);
	
	IDISPLAY_Update(GetActiveDisplay(pMe));
	for(i = 0; i<=pMe->game_data[15][0]; i++)
	{
		buf1[i] = 'け';
	}
	buf1[i] ='\0';
	IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, buf1, -1, pMe->game_data[15][1], pMe->game_data[15][2], NULL, 0);
	IDISPLAY_Update(GetActiveDisplay(pMe));
}

void setvalue(menu_sub *pMe)
{
	int i;
	int j;
	int result;
	byte randX;
	boolean re_flag;
	boolean fo_flag;
	AECHAR buf[20];
	AECHAR * pFormat = L"%d ";
	pMe->game_next = pMe->game_cnt * 12;
	pMe->game_cnt++;
	for(i = 0 ; i<=11;i++)
	{
		
		re_flag = TRUE;
		while(re_flag == TRUE){
			GETRAND(&randX, sizeof(randX));
			result = randX % 12 + 1;
			fo_flag = TRUE;
			for( j = 0 ; j <= 11 ; j++)
			{
				if (pMe->game_data[j][0] == result + pMe->game_next)
				{
					fo_flag = FALSE;
					continue;
				}
			}
			if(fo_flag == TRUE){
				re_flag = FALSE;
				pMe->game_data[i][0] = result + pMe->game_next;
			}
		}
		WSPRINTF(buf,sizeof(buf), pFormat, pMe->game_data[i][0]);
		IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, buf, -1, pMe->game_data[i][1], pMe->game_data[i][2], NULL, 0);
		IDISPLAY_Update(GetActiveDisplay(pMe));
	}
}

//GAME OVER PRINT
static void image_output(menu_sub *pMe)
{
	pMe->pImage = ISHELL_LoadImage(GetActiveShell(pMe), "./data/gameover.bmp");
	IIMAGE_SetParm(pMe->pImage, IPARM_ROP, AEE_RO_TRANSPARENT ,0);
	//if(pMe->pImage == NULL)
	//	return(FALSE);
	IIMAGE_Draw(pMe->pImage,10,50);
	//IIMAGE_Release(pMe->pImage);
	//pMe->pImage = NULL;
}

// 滚瓢 肋给 喘返阑锭
void progress_manager(menu_sub * pMe, int i)
{
	pMe->game_data[15][0] = pMe->game_data[15][0] - 2;
	if( pMe->game_data[15][0] <= 0 )
	{
		pMe->gamming = FALSE;
		progress_clear(pMe);
		image_output(pMe);
	}else{
		progress_clear(pMe);
	}
}

//鸥烙 瘤炒阑锭
static void TimerCallback(void * pParam)
{
	menu_sub * pMe = (menu_sub *)pParam;
	int lv_time;
	pMe->game_data[15][0] = pMe->game_data[15][0] - 1;

	if( pMe->game_data[15][0] <= 0 )
	{
		pMe->gamming = FALSE;
		progress_clear(pMe);
		image_output(pMe);
	
	}else{
		progress_clear(pMe);
		if (pMe->game_data[12][0] != 1)
		{
			lv_time = 1500 - (pMe->game_data[12][0]*100) ;
		}else
		{
			lv_time = 1500;
		}
		ISHELL_SetTimer(GetActiveShell(pMe), lv_time, TimerCallback, pMe);
	}

}
void setValueAt(menu_sub *pMe, int i)
{
	int j;
	int result;
	boolean re_flag;
	boolean fo_flag;
	byte randX;
	AECHAR buf[20];
	AECHAR buf1[30];
	AECHAR * pFormat = L"%d ";
	pMe->game_next = pMe->game_cnt * 12;
	if (pMe->game_data[13][0]-1 == pMe->game_next)
	{
		pMe->game_cnt++;
		pMe->game_next = pMe->game_cnt * 12;
		
	}
	pMe->game_data[13][0]++;

	//罚待窃荐肺 next蔼 茫扁
	re_flag = TRUE;
	while(re_flag == TRUE){
		GETRAND(&randX, sizeof(randX));
		result = randX % 12 + 1;
		fo_flag = TRUE;
		for( j = 0 ; j <= 11 ; j++)
		{
			if (pMe->game_data[j][0] == result + pMe->game_next)
			{
				fo_flag = FALSE;
				continue;
			}
		}
		if(fo_flag == TRUE){
			re_flag = FALSE;
			pMe->game_data[i][0] = result + pMe->game_next;
		}
	}

	//score 拌魂
	pMe->game_data[14][0] = pMe->game_data[14][0] + (pMe->game_data[12][0] * 1 );
	WSPRINTF(buf,sizeof(buf), pFormat, pMe->game_data[14][0]);
	IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, buf, -1, pMe->game_data[14][1], pMe->game_data[14][2], NULL, 0);
	IDISPLAY_Update(GetActiveDisplay(pMe));

	//罚待蔼 谎覆
	WSPRINTF(buf,sizeof(buf), pFormat, pMe->game_data[i][0]);
	IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, buf, -1, pMe->game_data[i][1], pMe->game_data[i][2], NULL, 0);
	IDISPLAY_Update(GetActiveDisplay(pMe));

	//next蔼 谎覆
	WSPRINTF(buf,sizeof(buf), pFormat, pMe->game_data[13][0]);
	IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, buf, -1, pMe->game_data[13][1], pMe->game_data[13][2], NULL, 0);
	IDISPLAY_Update(GetActiveDisplay(pMe));

	//progress 拌魂棺 谎府扁
	pMe->game_data[15][0] = pMe->game_data[15][0] + 1;
	if ( pMe->game_data[15][0] >= 22) {
		pMe->game_data[15][0] = 6;
		pMe->game_data[12][0]++;
	}
	progress_clear(pMe);
	
	
	//level 谎覆
	WSPRINTF(buf,sizeof(buf), pFormat, pMe->game_data[12][0]);
	IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, buf, -1, pMe->game_data[12][1], pMe->game_data[12][2], NULL, 0);
	IDISPLAY_Update(GetActiveDisplay(pMe));
	
	//鸥捞赣
	ISHELL_SetTimer(GetActiveShell(pMe), 1500, TimerCallback, pMe);

}




//览侩橇肺弊伐 捞亥飘 勤甸矾
static boolean menu_sub_OnStart(menu_sub *pMe, uint16 wParam, AEEAppStart * pStart)
{	
	int ret;
	int i;
	AECHAR buf[20];
	AECHAR buf1[35];
	AECHAR * pFormat = L"%d ";
	pMe->gamming = TRUE;
	_D("OnStart");
	
	//归弊扼款靛 拳搁
	pMe->pImage = ISHELL_LoadImage(GetActiveShell(pMe), "./data/baby.bmp");
	if(pMe->pImage == NULL)
		return(FALSE);
	IIMAGE_Draw(pMe->pImage, 0, 0);
	IIMAGE_Release(pMe->pImage);
	pMe->pImage = NULL;
	
	//檬扁拳
	pMe->game_cnt = 0;
	pMe->game_next = 0;
	pMe->game_data[13][0] = 1;
	IDISPLAY_Update(GetActiveDisplay(pMe));
	for(i= 0 ; i<=11;i++)
	{
		if (i <= 11) {
			pMe->game_data[i][2] = 135;
			if (i <= 8) {
				pMe->game_data[i][2] = 103;
				if (i <= 5) { 
					pMe->game_data[i][2] = 70;
					if (i <= 2) {
						pMe->game_data[i][2] = 35;
					}
				}
			}
		}
		if ( (i + 1) % 3 == 1 ) pMe->game_data[i][1] = 7;
		if ( (i + 1) % 3 == 2 ) pMe->game_data[i][1] = 37;
		if ( (i + 1) % 3 == 0 ) pMe->game_data[i][1] = 67;
		pMe->game_data[i][0] = 0; //rand() % 12;
		
	}
	pMe->game_data[12][0] = 1;
	pMe->game_data[12][1] = 95;
	pMe->game_data[12][2] = 39;
	pMe->game_data[13][1] = 95;
	pMe->game_data[13][2] = 74;
	pMe->game_data[14][0] = 0;
	pMe->game_data[14][1] = 95;
	pMe->game_data[14][2] = 107;
	pMe->game_data[15][0] = 10;  //max 22 
	pMe->game_data[15][1] = 5;
	pMe->game_data[15][2] = 5;

	//progress 谎府扁
	progress_clear(pMe);

	//蔼甸 拳搁 谎府扁
	setvalue(pMe);

⌨️ 快捷键说明

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