示例#1
0
//-----------------------------------------------------------------------------------------------------------------------------------
void ScreenManager::Update(float elapsedSeconds)
{
	m_keyboard.Update();
	m_camera.Update(elapsedSeconds);
	m_gameMouse.Update(elapsedSeconds);

	for (BaseScreen* screen : m_activeScreens)
	{
		// Screen updating
		screen->Update(elapsedSeconds);
	}

	for (BaseScreen* screen : m_screensToDelete)
	{
		// Clean up dead screens
		m_activeScreens.remove(screen);
		delete screen;
	}

	m_screensToDelete.clear();
}
示例#2
0
void GameUpdate()
{
	// Update the game mouse
	m_gameMouse.Update();

	// Cache the number of mice
	BtU32 numMice = m_gameMouse.GetNumMice();

	for( BtU32 device=0; device<numMice; device++ )
	{
		// Cache the position of the mouse pointer
		MtVector2 v2Position = m_gameMouse.GetPosition( device );

		BtFloat x = v2Position.x;
		BtFloat y = v2Position.y;

		BtU32 mouseIndex = device * 2;

		if( m_gameMouse.Pressed( 0, device ) == BtTrue )
		{
			ShTouch::BeginTouch( mouseIndex, MtVector2( x, y ) );
		}

		if( m_gameMouse.IsAlive( device ) == BtTrue )
		{
			ShTouch::SetAlive( mouseIndex );
		}

		ShTouch::MoveTouch( mouseIndex, MtVector2( x, y ) );

		if( m_gameMouse.Released( 0, device ) == BtTrue )
		{
			ShTouch::EndTouch( mouseIndex, MtVector2( x, y ) );
		}

		BtU32 button2 = mouseIndex + 1;

		if( m_gameMouse.Pressed( 1, device ) == BtTrue )
		{
			ShTouch::BeginTouch( button2, MtVector2( x, y ) );
		}

		ShTouch::MoveTouch( button2, MtVector2( x, y ) );

		if( m_gameMouse.Released( 1, device ) == BtTrue )
		{
			ShTouch::EndTouch( button2, MtVector2( x, y ) );
		}		
	}

	ShTouch::Update();

	if( UiKeyboard::pInstance()->IsPressed( UiKeyCode_F4 ) )
	{
		windowCloseListener();
		project->SetClosing();
	}

	// Update
	if( project->IsClosed() == BtFalse )
	{
		project->Update();
	}
}