Exemple #1
0
//=============================================================================
// 更新処理
//=============================================================================
void UpdatePlaybar(void)
{
	if(!*GetIsPlay())
	{
		// 如果鼠标左键单击的时候,当前位置在时间条的范围内,那么该条跟随鼠标移动
		// シークバーがマウスの位置にくっついている
		if(IsMouseLeftPressed())
		{
			if(!g_bIsPlaybarMove)
				for(int nCntPlayBar = 0; nCntPlayBar < MAX_PLAYBAR; nCntPlayBar++)
				{
					if(g_aPlaybar[nCntPlayBar].bUse == true)
					{
						float fX = *GetMouX(), fY = *GetMouY();
						if(	fX >= g_aPlaybar[nCntPlayBar].pos.x - g_aPlaybar[nCntPlayBar].fWidth / 2 && 
							fX <= g_aPlaybar[nCntPlayBar].pos.x + g_aPlaybar[nCntPlayBar].fWidth / 2 &&
							fY >= g_aPlaybar[nCntPlayBar].pos.y - g_aPlaybar[nCntPlayBar].fHeight / 2 &&
							fY <= g_aPlaybar[nCntPlayBar].pos.y + g_aPlaybar[nCntPlayBar].fHeight / 2)
						{
							{
								// X軸
								g_fDistPbar2MousX = abs(g_aPlaybar[nCntPlayBar].pos.x - fX);
								// Y軸
								//g_fDistPbar2MousY = abs(g_aPlaybar[nCntPlayBar].pos.y - fY);
							}
							g_bIsPlaybarMove = true;
							g_nBeControlNum = nCntPlayBar;
						}
						//SetBarEffect(&g_aPlaybar[nCntPlayBar]);
					}
				}

			if(g_bIsPlaybarMove == true)
			{
				float fX = *GetMouX(), fY = *GetMouY();
				// X軸
				if(fX < g_aPlaybar[g_nBeControlNum].pos.x)
					g_aPlaybar[g_nBeControlNum].pos.x = fX + g_fDistPbar2MousX;
				else
					g_aPlaybar[g_nBeControlNum].pos.x = fX - g_fDistPbar2MousX;
				// Y軸
				//if(nY < g_aPlaybar[g_nBeControlNum].pos.y)
				//	g_aPlaybar[g_nBeControlNum].pos.y = fY + g_fDistPbar2MousY;
				//else
				//	g_aPlaybar[g_nBeControlNum].pos.y = fY - g_fDistPbar2MousY;
			}

			// 重排轨迹线
			*GetCleanupSwitch() = false;
		}
		else
		{
			g_bIsPlaybarMove = false;
		}

		if(IsMouseRightTriggered())
		{
			for(int nCntPlayBar = 0; nCntPlayBar < MAX_PLAYBAR; nCntPlayBar++)
			{
				if(g_aPlaybar[nCntPlayBar].bUse == true)
				{
					float fX = *GetMouX(), fY = *GetMouY();
					if(	fX >= g_aPlaybar[nCntPlayBar].pos.x - g_aPlaybar[nCntPlayBar].fWidth / 2 && 
						fX <= g_aPlaybar[nCntPlayBar].pos.x + g_aPlaybar[nCntPlayBar].fWidth / 2 &&
						fY >= g_aPlaybar[nCntPlayBar].pos.y - g_aPlaybar[nCntPlayBar].fHeight / 2 &&
						fY <= g_aPlaybar[nCntPlayBar].pos.y + g_aPlaybar[nCntPlayBar].fHeight / 2)
					{
						g_aPlaybar[nCntPlayBar].bIsInvert = g_aPlaybar[nCntPlayBar].bIsInvert ? false : true;
						float fTempChange = 0;
						fTempChange = g_aPlaybar[nCntPlayBar].fTimeEnd;
						g_aPlaybar[nCntPlayBar].fTimeEnd = g_aPlaybar[nCntPlayBar].fTimeStart;
						g_aPlaybar[nCntPlayBar].fTimeStart = fTempChange;
						// 重排轨迹线
						*GetCleanupSwitch() = false;
					}
				}
			}
		}

		for(int nCntPlayBar = 0; nCntPlayBar < g_nPlaybarNum; nCntPlayBar++)
		{
			if(g_aPlaybar[nCntPlayBar].bUse)
			{
				// 
				if(	g_aPlaybar[nCntPlayBar].nType == PLAYBAR_3_1 ||
					g_aPlaybar[nCntPlayBar].nType == PLAYBAR_3_2 ||
					g_aPlaybar[nCntPlayBar].nType == PLAYBAR_3_3)
				{

					if(!g_aPlaybar[nCntPlayBar].bIsInvert)
						SetTexturePlaybar(nCntPlayBar, 0, 2, 1, 2);
					else
						SetTexturePlaybar(nCntPlayBar, 1, 2, 1, 2);

					SetVertexPlaybar(nCntPlayBar, 1, 1);
				}
			}
		}
	}

	//g_aPlaybar[0].pos.x = *GetMouX();
	//g_aPlaybar[0].pos.y = *GetMouY();
	if(g_nBeControlNum != -1)
		PlaybarPosChange(g_nBeControlNum);
}
Exemple #2
0
	bool Input::ReadMouse()
	{
		HRESULT result;


		// Read the pMouse pDevice.
		result = pMouse->GetDeviceState(sizeof(DIMOUSESTATE), (LPVOID)&mouseState);
		if(FAILED(result))
		{
			// If the pMouse lost focus or was not acquired then try to get control back.
			if((result == DIERR_INPUTLOST) || (result == DIERR_NOTACQUIRED))
			{
				pMouse->Acquire();
			}
			else
			{
				return false;
			}
		}
				// Update the location of the pMouse cursor based on the change of the pMouse location during the frame.
		mouseX += mouseState.lX;
		mouseY += mouseState.lY;

		// Ensure the mouse location doesn't exceed the screen width or height.
		if(mouseX < 0)  
		{ 
			mouseX = 0; 
		}
		
		if(mouseY < 0)  
		{ 
			mouseY = 0; 
		}
	
		if(mouseX > screenWidth)  
		{ 
			mouseX = screenWidth; 
		}

		if(mouseY > screenHeight) 
		{ 
			mouseY = screenHeight; 
		}
	
		if(mouseLeftDown)
		{
			if(!IsMouseLeftPressed())
			{
				mouseLeftDown = false;
			}
		}
		else
		{
			if(IsMouseLeftPressed())
			{
				mouseLeftDown = true;
				mouseLeftDownX = mouseX;
				mouseLeftDownY = mouseY;

			}
		}

		if(IsMouseRightPressed())
		{
			if(!mouseRightDown)
			{
				mouseRightDown = true;
				mouseRightDownX = mouseX;
				mouseRightDownY = mouseY;
			}
		}
		else if(!IsMouseRightPressed())
		{
			mouseRightDown = false;
		}
		return true;
	}
Exemple #3
0
//=============================================================================
// 更新処理
//=============================================================================
void UpdateGameManager(void)
{
#ifdef _DEBUG
	if(GetKeyboardTrigger(DIK_F1))
	{
		g_nGameMode = SELECTMODE_PLAY;
	}
	if(GetKeyboardTrigger(DIK_F2))
	{
		g_nGameMode = SELECTMODE_WALLEDIT;
	}
	if(GetKeyboardTrigger(DIK_F3))
	{
		g_nGameMode = SELECTMODE_GIMMICKEDIT;
	}
	if(GetKeyboardTrigger(DIK_F4))
	{
		g_nGameMode = SELECTMODE_PLAYEREDIT;
	}
	if(GetKeyboardTrigger(DIK_F5))
	{
		g_nGameMode = SELECTMODE_DELETE;
	}
	if(GetKeyboardTrigger(DIK_F6))
	{
		g_nGameMode = SELECTMODE_SCENECHANGE;
	}
	if(GetKeyboardTrigger(DIK_F7))
	{
		g_nGameMode = SELECTMODE_PLAYERBAR_NUM;
	}
	if(GetKeyboardTrigger(DIK_F8))
	{
		g_nGameMode = SELECTMODE_ITEMNUMEDIT;
	}
	if(g_nGameMode != SELECTMODE_PLAY)
		GetBackG()[BACKGROUND_EDIT_NET].bUse = true;
	else
		GetBackG()[BACKGROUND_EDIT_NET].bUse = false;

#endif

	switch (g_nGameMode)
	{
	case SELECTMODE_PLAY:
	{
		PrintDebugProc("【ゲームモード】\n");
		if(GetTimeCounter()->fCurrentTime > TIME_15)
			g_bIsPlay = false;

		if(!g_bIsPlay)
		{
			if(IsMouseRightTriggered())
			{
				int nGimNum = -1;
				int nItemNum = GetItemNum()->nItemLockTime;
				bool bIsLock = false;

				if(IsGimmickLock(&nGimNum, &bIsLock, &nItemNum) == true)
				{
					if(bIsLock == true)
					{
						SetItem(D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f), ITEM_TYPE_01, nGimNum);
						UpdataItemNum(-1);
					}
					else
					{
						DeleteItem(nGimNum);
						UpdataItemNum(1);
					}
				}
			}
		}
		break;
	}
	case SELECTMODE_WALLEDIT:
	{
		PrintDebugProc("【壁を編集するモード】\n");
		WallCreateMode();
		break;
	}
	case SELECTMODE_GIMMICKEDIT:
	{
		PrintDebugProc("【ギミック編集モード】\n");
		GimmickCreateMode();
		break;
	}
	case SELECTMODE_PLAYEREDIT:
	{
		PrintDebugProc("【プレイヤー編集モード】\n");
		if(IsMouseLeftPressed())
			IsMouseHitPlayer();
		PlayerEdit();
		break;
	}
	case SELECTMODE_DELETE:
	{
		PrintDebugProc("【削除モード】\n");
		DeleteGimmick();
		DeleteWall();
		break;
	}
	case SELECTMODE_SCENECHANGE:
	{
		PrintDebugProc("【ステージ切り替えるモード】\n");
		if(IsMouseRightTriggered())
		{
			if(*GetSceneNum() < SCENE_TYPE_MAX)
				(*GetSceneNum())++;
			if(*GetSceneNum() == SCENE_TYPE_MAX)
				*GetSceneNum() = 0;
			g_bIsSceneInit = true;
		}

		if(g_bIsSceneInit == true)
		{
			g_bIsSceneInit = false;
			switch (*GetSceneNum())
			{
			case SCENE_01:
				// 从文件中读取
				LoadData(SCENE_01);
				break;
			case SCENE_02:
				// 从文件中读取
				LoadData(SCENE_02);
				break;
			case SCENE_03:
				// 从文件中读取
				LoadData(SCENE_03);
				break;
			case SCENE_04:
				// 从文件中读取
				LoadData(SCENE_04);
				break;
			case SCENE_05:
				// 从文件中读取
				LoadData(SCENE_05);
				break;
			default:
				break;
			}
			// 読み込むデータを初期化
			InitDataPlayer();
			InitDataWall();
			InitDataGimmick();
			InitDataPlayerbar();

			for(int nCntGim = 0; nCntGim < MAX_GIMMICK; nCntGim++)
			{
				// 根据补完的数据对机关场景进行位置和运动预处理
				SetupGimmickTrack(nCntGim);
				*GetCleanupSwitch() = false;
			}
		}
		break;
	}
	case SELECTMODE_PLAYERBAR_NUM:
	{
		PrintDebugProc("【時間軸編集モード】\n");
		PrintDebugProc("数字キー「1」 時間軸数:1\n");
		PrintDebugProc("数字キー「2」 時間軸数:2\n");
		PrintDebugProc("数字キー「3」 時間軸数:3\n");
		if(GetKeyboardTrigger(DIK_1))
		{
			for(int nCntPlayBar = 0; nCntPlayBar < MAX_PLAYBAR; nCntPlayBar++)
			{
				//if(g_pPlaybar_GM[nCntPlayBar].bUse == true)
					g_pPlaybar_GM[nCntPlayBar].bUse = false;
			}
			for(int nCntGim = 0; nCntGim < MAX_GIMMICK; nCntGim++)
			{
				if(g_pGimmick_GM[nCntGim].bUse)
				{
					g_pGimmick_GM[nCntGim].nPriorityNum01 = -1;
					g_pGimmick_GM[nCntGim].nPriorityNum02 = -1;
					g_pGimmick_GM[nCntGim].nPriorityNum03 = -1;
				}
			}
			SetPlaybar(D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f), PLAYBAR_3_1);
			PlaybarNumCount();
		}
		if(GetKeyboardTrigger(DIK_2))
		{
			for(int nCntPlayBar = 0; nCntPlayBar < MAX_PLAYBAR; nCntPlayBar++)
			{
				//if(g_pPlaybar_GM[nCntPlayBar].bUse == true)
					g_pPlaybar_GM[nCntPlayBar].bUse = false;
			}
			for(int nCntGim = 0; nCntGim < MAX_GIMMICK; nCntGim++)
			{
				if(g_pGimmick_GM[nCntGim].bUse)
				{
					g_pGimmick_GM[nCntGim].nPriorityNum01 = -1;
					g_pGimmick_GM[nCntGim].nPriorityNum02 = -1;
					g_pGimmick_GM[nCntGim].nPriorityNum03 = -1;
				}
			}
			SetPlaybar(D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f), PLAYBAR_3_1);
			SetPlaybar(D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f), PLAYBAR_3_2);
			PlaybarNumCount();
		}
		if(GetKeyboardTrigger(DIK_3))
		{
			for(int nCntPlayBar = 0; nCntPlayBar < MAX_PLAYBAR; nCntPlayBar++)
			{
				//if(g_pPlaybar_GM[nCntPlayBar].bUse == true)
					g_pPlaybar_GM[nCntPlayBar].bUse = false;
			}
			for(int nCntGim = 0; nCntGim < MAX_GIMMICK; nCntGim++)
			{
				if(g_pGimmick_GM[nCntGim].bUse)
				{
					g_pGimmick_GM[nCntGim].nPriorityNum01 = -1;
					g_pGimmick_GM[nCntGim].nPriorityNum02 = -1;
					g_pGimmick_GM[nCntGim].nPriorityNum03 = -1;
				}
			}
			SetPlaybar(D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f), PLAYBAR_3_1);
			SetPlaybar(D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f), PLAYBAR_3_2);
			SetPlaybar(D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f), PLAYBAR_3_3);
			PlaybarNumCount();
		}
		break;
	}
	case SELECTMODE_ITEMNUMEDIT:
	{
		PrintDebugProc("【アイテム個数編集モード】\n");
		PrintDebugProc("【メニュー】    【アイテム】    【個数】\n");
		PrintDebugProc("数字キー「1」 時間固定アイテム:%d\n\n", g_pItemNum_GM->nItemLockTime);

		if(GetKeyboardTrigger(DIK_1))
		{
			g_nMenuSelect_GM = 1;
		}

		switch (g_nMenuSelect_GM)
		{

			case 1:
				PrintDebugProc("矢印キー【左】、【右】   【プラス/マイナス 1】\n");
				PrintDebugProc("矢印キー【上】、【下】   【プラス/マイナス 5】\n");

				if(GetKeyboardRepeat(DIK_LEFT))
				{
					g_pItemNum_GM->nItemLockTime -= 1;
					if(g_pItemNum_GM->nItemLockTime < 0)
						g_pItemNum_GM->nItemLockTime = 0;
				}
				if(GetKeyboardRepeat(DIK_RIGHT))
				{
					g_pItemNum_GM->nItemLockTime += 1;
					if(g_pItemNum_GM->nItemLockTime > 9)
						g_pItemNum_GM->nItemLockTime = 9;
				}
				if(GetKeyboardRepeat(DIK_DOWN))
				{
					g_pItemNum_GM->nItemLockTime -= 5;
					if(g_pItemNum_GM->nItemLockTime < 0)
						g_pItemNum_GM->nItemLockTime = 0;
				}
				if(GetKeyboardRepeat(DIK_UP))
				{
					g_pItemNum_GM->nItemLockTime += 5;
					if(g_pItemNum_GM->nItemLockTime > 9)
						g_pItemNum_GM->nItemLockTime = 9;
				}
				break;
			default:
				break;
		}

	}
	default:
		break;
	}

	if(!g_bIsPlay)
	{
		switch (*GetSceneNum())
		{
		case SCENE_01:
			PrintDebugProc("【SCENE_01】\n");
			// 今のシーンをセーフする
			if(IsMouseCenterTriggered())
				SaveData(SCENE_01);
			break;

		case SCENE_02:
			PrintDebugProc("【SCENE_02】\n");
			if(IsMouseCenterTriggered())
				SaveData(SCENE_02);
			break;

		case SCENE_03:
			PrintDebugProc("【SCENE_03】\n");
			if(IsMouseCenterTriggered())
				SaveData(SCENE_03);
			break;

		case SCENE_04:
			PrintDebugProc("【SCENE_04】\n");
			if(IsMouseCenterTriggered())
				SaveData(SCENE_04);
			break;

		case SCENE_05:
			PrintDebugProc("【SCENE_05】\n");
			if(IsMouseCenterTriggered())
				SaveData(SCENE_05);
			break;

		default:
			break;
		}
	}

	switch(*GetMode())
	{
	case GAMEMODE_LOGO:
		break;

	case GAMEMODE_TITLE:
	{
		if(GetKeyboardTrigger(DIK_RETURN) || IsMouseLeftTriggered())
			SetFade(FADE_OUT, FADE_IN, GAMEMODE_STAGE_SELECT);
		break;
	}
	case GAMEMODE_STAGE_SELECT:
	{
		g_bIsStop = true;
		g_bIsPlay = false;

		if(GetKeyboardTrigger(DIK_RETURN))
			SetFade(FADE_OUT, FADE_IN, GAMEMODE_GAME);

		if(IsMouseLeftTriggered())
		{
			int pIconNum = 0;
			if(IsMouseHitIcon(&pIconNum) == true)
			{
				*GetSceneNum() = GetGameElement()[pIconNum].nType;
				g_bIsSceneInit = true;
			}
		}

		if(g_bIsSceneInit == true)
		{
			g_bIsSceneInit = false;
			switch (*GetSceneNum())
			{
			case SCENE_01:
				// 从文件中读取
				LoadData(SCENE_01);
				break;
			case SCENE_02:
				// 从文件中读取
				LoadData(SCENE_02);
				break;
			case SCENE_03:
				// 从文件中读取
				LoadData(SCENE_03);
				break;
			case SCENE_04:
				// 从文件中读取
				LoadData(SCENE_04);
				break;
			case SCENE_05:
				// 从文件中读取
				LoadData(SCENE_05);
				break;
			default:
				break;
			}
			// 読み込むデータを初期化
			InitDataPlayer();
			InitDataWall();
			InitDataGimmick();
			InitDataPlayerbar();

			for(int nCntGim = 0; nCntGim < MAX_GIMMICK; nCntGim++)
			{
				// 根据补完的数据对机关场景进行位置和运动预处理
				SetupGimmickTrack(nCntGim);
				*GetCleanupSwitch() = false;
			}
			//*GetMode() = GAMEMODE_GAME;

			SetFade(FADE_OUT, FADE_IN, GAMEMODE_GAME);
		}
		
		break;
	}
	case GAMEMODE_GAME:
		break;

	case GAMEMODE_END:
		break;

	default:
		break;
	}



}