Esempio n. 1
0
void CTetrisGame::Play(float dt)
{
	if (m_enGameState == GAMESTATE_PAUSE)
	{
		//目前只有炸弹需要持续显示一段时间
		if (UpdateSelfState(dt))
		{
			if (++m_iSelfFlashCount >= BOMB_BOOM_FLASH_COUNT)
			{
				//切换进行中状态
				m_enGameState = GAMESTATE_RUNNING;

				//产生新方块
				RandNewShape();
			}
		}
	}
	else if (m_enGameState == GAMESTATE_RUNNING)
	{
		//闪烁状态更新
		bool bUpdateFlag = UpdateSelfState(dt);

		//方块移动
		bUpdateFlag = BrickMove(dt) || bUpdateFlag;

		if (!bUpdateFlag)
		{
			return;
		}
	}
	else if (m_enGameState == GAMESTATE_OVER)
	{
		//标记存档无效
		SET_BOOLVALUE("RECORD_VALID", false);

		m_pGameScene->RunScene(SCENE_GAMEOVER);
		return;
	}
	
	m_pGameScene->UpdateBricks();
}
Esempio n. 2
0
//设置声音状态
void CGeneralManager::SetSoundState(bool bState)
{
	m_bSoundOn = bState;
	SET_BOOLVALUE("SOUND", m_bSoundOn);
}