Esempio n. 1
0
bool Update(float dt){dt;
	if (isEditingSpaceship){
		editor.Update();

		if (editor.IsExited() || editor.IsSpaceshipReady()){
			isEditingSpaceship = false;

			if (editor.IsSpaceshipReady()){
		//		ship = editor.GetSpaceship();
			}

			editor.Reset();
		}
	}
	else{
		if(!isMainMenu && !isControls){
			lvl.Update(dt);
			manager->Update(false, 0.0f, Vector2(), dt);

			if (lvl.IsWin() || lvl.IsGameOver()){
				isMainMenu = true;
			}
		}
		else if (isControls){
			isControls = Controls::Update();
			if (!isControls){
				isMainMenu = true;
			}
		}
		else{
			menu.Update(dt);
			UpdateGameState();
		}
	}

	if (Input::IsPressed('O')){
		isEditingSpaceship = true;
	}

	bool requestedExit = (Input::IsPressed(Input::KEY_ESCAPE));
	if (requestedExit){
		profiler.WriteToFile();
		END_LOG
	}

	return requestedExit;
}
Esempio n. 2
0
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
	// save off the instance handle
	hInst = hInstance; 

	// Set up the application window
	if (!InitWindow(hInstance))
	{
		return 0;
	}

	// Initialize Direct3D
	if (!dxMgr.InitDirect3D(mainhWnd))
	{
		return 0;
	}

	if (!diMgr.initDirectInput(hInst, mainhWnd))
	{
		MessageBox(mainhWnd, "Unable to init DirectInput", "ERROR", MB_OK);
		return false;
	}
	
	if (!diMgr.initKeyboard(hInst, mainhWnd))
	{
		MessageBox(mainhWnd, "Unable to init Mouse", "ERROR", MB_OK);
		return false;
	}

	if (!dsMgr.init(mainhWnd))
	{
		MessageBox(mainhWnd, "Unable to init Audio", "ERROR", MB_OK);
		return false;
	}

	// Initialize play mode
	if (!playMode.InitGame())
	{
		MessageBox(mainhWnd, "Unable to init game mode.", "ERROR", MB_OK);
		return 0;
	}

	
	// Initialize post game mode
	if (!postGame.Init())
	{
		MessageBox(mainhWnd, "Unable to init post game mode.", "ERROR", MB_OK);
		return 0;
	}

	// Initialize Main Menu
	if (!mainMenu.InitMenu())
	{
		MessageBox(mainhWnd, "Unable to init main menu.", "ERROR", MB_OK);
		return 0;
	}

	// Main message loop
    MSG msg = {0};
    while (WM_QUIT != msg.message)
    {
		// Process Windows messages first
        while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) == TRUE)
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        	
		// Render the scene
		if(gameState == MAINMENU)
		{
			gameState = mainMenu.Update();
			mainMenu.Render();
		}
		else if(gameState == SINGLEGAME)
		{
			playMode.setUp(false,true);
			gameState = PLAY;
		}
		else if(gameState == MULTIGAME)
		{
			playMode.setUp(true,true);
			gameState = PLAY;
		}
		else if(gameState == CONTSINGLE)
		{
			playMode.setUp(false,false);
			gameState = PLAY;
		}
		else if(gameState == CONTMULTI)
		{
			playMode.setUp(true,false);
			gameState = PLAY;
		}
		else if(gameState == PLAYERONEWIN || gameState == PLAYERTWOWIN || gameState == LOSE || gameState == WIN || gameState == MULTIDRAW || gameState == DRAW || gameState == MULTIPAUSE || gameState == PAUSE)
		{
			gameState = postGame.Update(gameState);
			postGame.Render(gameState);
		}
		else if(gameState == PLAY)
		{
			gameState = playMode.Update();
			playMode.Render();
		}
    }

	// Clean up
	dxMgr.ShutdownDirect3D();
	diMgr.shutdown();
	playMode.Shutdown();
	mainMenu.Shutdown();

	return (int) msg.wParam;
}