コード例 #1
0
ファイル: MainLoop.cpp プロジェクト: cstegmayr/bitsoccer
	int MainLoop()
	{
		Renderer::Initialize();

		Game g;
		g.Initialize();

		double time = glfwGetTime();

		do
		{
			double newTime = glfwGetTime(); 
			double dt = newTime - time;
			time = newTime;
			g.Update(dt);
			g.Draw();
			Renderer::DrawCallback();

			const double wantedFrametime = 1.0 / 30.0;
			const double sleepThreshold = 1.0/1000.0;
			double sleepTime = wantedFrametime - (glfwGetTime() - newTime) - sleepThreshold;
			if (sleepTime > 0.0)
				glfwSleep(sleepTime);
		} while (Renderer::IsRunning());


		return 0;
	}
コード例 #2
0
ファイル: main.cpp プロジェクト: MusingRabbit/OpenGLScene
int main(int argc, char* argv[]) {
	Display display(SCREEN_WIDTH, SCREEN_HEIGHT, "OpenGL Application");

	Game game;
	game.Init(display);

	while (!display.isClosed())
	{
		SDL_Event e;
		display.Update();

		while (SDL_PollEvent(&e))
		{
			if (e.type == SDL_QUIT)
				display.Close();
			else if (e.type == SDL_KEYDOWN || e.type == SDL_KEYUP)
				Keyboard::getInstance()->ProcessSDLEvent(e);
			else if (e.type == SDL_MOUSEBUTTONDOWN || SDL_MOUSEBUTTONUP || SDL_MOUSEMOTION)
				Mouse::getInstance()->ProcessSDLEvent(e);
		}
		
		game.Update();
		game.Draw();
	}

	return 0;
}
コード例 #3
0
ファイル: Tetris.cpp プロジェクト: Horatio123/Tetris
// display's function
void Display ( void ) {
  glClear ( GL_COLOR_BUFFER_BIT );
  glClear (GL_DEPTH_BUFFER_BIT);
  if(loseFlag==FALSE)
    tetrisFigure.Draw(); // only draw if loseFlag not TRUE
  tetrisGame.Draw();  // Draw the game
  glutSwapBuffers();
}
コード例 #4
0
ファイル: GameHostX11.cpp プロジェクト: mogemimi/pomdog
void GameHostX11::Impl::RenderFrame(Game & game)
{
    if (!window || window->IsMinimized()) {
        // skip rendering
        return;
    }

    game.Draw();
}
コード例 #5
0
ファイル: main.cpp プロジェクト: tomaspeverell/Game-Of-Life
int main()
{
    Game* g;
    try {
        g = new Game("test.txt");
    } catch(exception &e) {
        cout << e.what();
        exit(1);
    }
    g->Draw();
    while(!g->IsDead()) {
        Sleep(100);
        g->Update();
        g->Draw();
    }
    delete g;
    return 0;
}
コード例 #6
0
ファイル: Tetris.cpp プロジェクト: Rookiee/CPlusPlus
// 显示函数
void Display(void) {

    glClear(GL_COLOR_BUFFER_BIT);
    glClear(GL_DEPTH_BUFFER_BIT);

    // 如果游戏没有结束显示当前的形状
    if(tetrisGame.GetStatus())
        tetrisFigure.Draw();

    //显示游戏界面
    tetrisGame.Draw();
    glutSwapBuffers();
}
コード例 #7
0
ファイル: Game2D.cpp プロジェクト: luisango/Game2D
int _tmain(int argc, _TCHAR* argv[])
{
	Game * pGame = new Game();

	while (1)
	{
        pGame->Draw();
        pGame->Update();
        pGame->ProcessInput();
	}

	return 0;
}
コード例 #8
0
ファイル: main.cpp プロジェクト: Bur0k/D45az
int main()//Im Debug Mode verwenden wir Console als SubSystem. Es wird trotzdem das SFML Fenster erzeugt.
#endif
{
	Client* c = Client::get();
	c->addToErrorCallback(&tc);
	c->addToNewMessageCallback(&tc);



	cout << endl << "Hallo D45az" << endl << "oeffne Fenster" << endl;

	// create the window
	sf::RenderWindow window(sf::VideoMode(1280, 850), "ZERBERSTEN!");
	//window.setPosition(sf::Vector2i(400,0)); NEIN RICHARD
	window.setMouseCursorVisible(false);



	//erlaubte einstiegspunkte für Views::
	//TESTSCREEN LOGIN
	Game* g = new Game(&window, Views::LOGIN, sf::Vector2f(1280, 850));
	
	
	while (window.isOpen())
	{
		g->Input();

		g->timer();

		window.clear(sf::Color::Black);
		
		g->Draw();
		
		window.display();

		sleep(sf::milliseconds(1));
	}
	
	delete g;
	
	delete Client::get();

	MyFonts::deleteFonts(); //TODO in game implementieren

	return 0;
}
コード例 #9
0
ファイル: Main.cpp プロジェクト: tiashaun/cribz_game_engine
int main(int argc, char* argv[]) 
{
	Game game;

	game.Init(false);

	while(game.Running())
	{
		game.HandleEvent(&game);
		game.Update();
		SDL_FillRect(game.GetScreen(), NULL, 0x000000);
		game.Draw();
	}
	
	game.Clean();
	return 0;
}
コード例 #10
0
ファイル: main.cpp プロジェクト: Gnidleif/3D_ShadowMap
// Draw function, I don't know or care that much about what's going on here, as long as it works
void Main::Draw()
{
	mDirect3D->GetDevCon()->ClearRenderTargetView(mDirect3D->GetRTView(), reinterpret_cast<const float*>(&Colors::Cyan));
	mDirect3D->GetDevCon()->ClearDepthStencilView(mDirect3D->GetDSView(), D3D11_CLEAR_DEPTH|D3D11_CLEAR_STENCIL, 1.0f, 0);

	float blendFactor[] = {0.0f, 0.0f, 0.0f, 0.0f};
	mDirect3D->GetDevCon()->RSSetState(0);
	mDirect3D->GetDevCon()->OMSetDepthStencilState(0, 0);
	mDirect3D->GetDevCon()->OMSetBlendState(0, blendFactor, 0xffffffff);

	mGame->Draw(mDirect3D->GetDevCon());
	mSkyBox->Draw(mDirect3D->GetDevCon(), mGame->GetPlayerCam());

	// If the text isn't drawn last, objects in the world might hide it
	Text->Draw();

	mDirect3D->GetSwapChain()->Present(1, 0);
}
コード例 #11
0
ファイル: Program.cpp プロジェクト: Chocken/shmup
int main(int argc, char*argv[])
{
	Game game;
	game.Init("Space Shooter",Settings::ScreenWidth,Settings::ScreenHeight,32,false);
	game.ChangeState(LogoState::Instance());	
	
	while(game.Running())
	{
		game.HandleEvents();	
		game.Update();		
		game.Draw();	
	}
	
	printf("about to call cleanup\n");
	game.Cleanup();
	
	return 0;
}
コード例 #12
0
ファイル: Game.cpp プロジェクト: var-ivaylo/GameDev_Training
int main(int argc, char *argv[])
{
	Game game;

	if (!game.Init())
	{
		printf("Failed to initialize!\n");
		return 0;
	}
	if (!game.LoadMedia())
	{
		printf("Failed to load media!\n");
		return 0;
	}
	game.LoadScreen();
	game.Draw();

	bool quit = false;
	SDL_Event e;

	game.StartTimer();
	while (!quit)
	{
		while (SDL_PollEvent(&e) != 0)
		{
			if (e.type == SDL_QUIT)
			{
				quit = true;
			}

			if (e.type == SDL_KEYDOWN)
			{
				switch (e.key.keysym.sym)
				{
				case SDLK_LEFT:
					game.MoveLeft();
					break;

				case SDLK_RIGHT:
					game.MoveRight();
					break;

				case SDLK_SPACE:
					game.PlayerShoot();
					break;
				}
			}
		}

		if (game.Update())
		{
			bool screenQuit = false;
			while (!screenQuit)
			{
				while (SDL_PollEvent(&e) != 0)
				{
					if (e.type == SDL_QUIT)
					{
						screenQuit = true;
						quit = true;
					}

					if (e.type == SDL_KEYDOWN)
					{
						switch (e.key.keysym.sym)
						{
						case SDLK_SPACE:
							game.LoadScreen();
							game.Draw();
							game.StartTimer();
							screenQuit = true;
							break;
						}
					}
				}
			}
		}
	}

	return 0;
}
コード例 #13
0
ファイル: main.cpp プロジェクト: hyzor/GameProject
void Projekt::DrawScene()
{
	//---------------------------------------------------------------------------
	// Render scene to shadow map
	//---------------------------------------------------------------------------
	mShadowMap->BindDsvAndSetNullRenderTarget(mDirect3D->GetImmediateContext());
	mShadowMap->DrawSceneToShadowMap(mGenericInstances, *mGame->GetCamera(), mDirect3D->GetImmediateContext());

	mDirect3D->GetImmediateContext()->RSSetState(0);

	// Restore back and depth buffer and viewport to the OM stage
	ID3D11RenderTargetView* renderTargets[1] = {mDirect3D->GetRenderTargetView()};
	mDirect3D->GetImmediateContext()->OMSetRenderTargets(1, renderTargets, mDirect3D->GetDepthStencilView());
	mDirect3D->GetImmediateContext()->ClearRenderTargetView(mDirect3D->GetRenderTargetView(), reinterpret_cast<const float*>(&Colors::LightSteelBlue));

	mDirect3D->GetImmediateContext()->ClearDepthStencilView(mDirect3D->GetDepthStencilView(), D3D11_CLEAR_DEPTH|D3D11_CLEAR_STENCIL, 1.0f, 0);
	mDirect3D->GetImmediateContext()->RSSetViewports(1, &mDirect3D->GetScreenViewport());

	//---------------------------------------------------------------------------

	// Possible Wireframe render state
// 	if (mDirectInput->GetKeyboardState()[DIK_E] && 0x80)
// 		mDirect3D->GetImmediateContext()->RSSetState(RenderStates::WireFrameRS);

	//--------------------------------------------------------------
	// Set shader constants
	//--------------------------------------------------------------
	Effects::BasicFX->SetDirLights(mDirLights);
	Effects::BasicFX->SetEyePosW(mGame->GetCamera()->GetPosition());
	Effects::BasicFX->SetShadowMap(mShadowMap->getDepthMapSRV());
	Effects::BasicFX->SetCubeMap(mSky->cubeMapSRV());

	Effects::NormalMapFX->SetDirLights(mDirLights);
	Effects::NormalMapFX->SetEyePosW(mGame->GetCamera()->GetPosition());
	Effects::NormalMapFX->SetShadowMap(mShadowMap->getDepthMapSRV());
	Effects::NormalMapFX->SetCubeMap(mSky->cubeMapSRV());

	// Draw sky
	mSky->draw(mDirect3D->GetImmediateContext(), *mGame->GetCamera(), Gui->InMenu());

	// Draw game
	mGame->Draw(mDirect3D->GetImmediateContext(), mShadowMap);
	
	this->soundModule->updateAndPlay(mGame->GetCamera(), mGame->GetCamera()->GetPosition());

	// Draw the GUI
	Gui->Render(mDirect3D->GetImmediateContext(), mGame->GetPlayer()->GetPosition());

	// Unbind shadow map and AmbientMap as a shader input because we are going to render
	// to it next frame.  These textures can be at any slot, so clear all slots.
	ID3D11ShaderResourceView* nullSRV[16] = { 0 };
	mDirect3D->GetImmediateContext()->PSSetShaderResources(0, 16, nullSRV);

	// Restore default states
	float blendFactor[] = {0.0f, 0.0f, 0.0f, 0.0f};
	mDirect3D->GetImmediateContext()->RSSetState(0);
	mDirect3D->GetImmediateContext()->OMSetDepthStencilState(0, 0);
	mDirect3D->GetImmediateContext()->OMSetBlendState(0, blendFactor, 0xffffffff); 

	HR(mDirect3D->GetSwapChain()->Present(0, 0));
}
コード例 #14
-1
ファイル: System.cpp プロジェクト: ScottKaye/SpaceShooter
int main(int argc, char** argv) {
	// Seed and refresh RNG
	std::srand((unsigned)std::time(NULL) ^ (unsigned)std::rand());
	short n = 10 + rand() % 10;
	for (short i = 0; i < n; i++) {
		std::rand();
	}

	// Initialize SDL
	if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0) {
		std::cerr << "*** Failed to initialize SDL: " << SDL_GetError() << std::endl;
		return EXIT_FAILURE;
	}

	// Initialize SDL_image library
	if (!IMG_Init(IMG_INIT_JPG | IMG_INIT_PNG)) {
		std::cerr << "*** Failed to initialize SDL_image: " << IMG_GetError() << std::endl;
		return EXIT_FAILURE;
	}

	// Initialize SDL_mixer library
	if (Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024) < 0) {
		std::cerr << "*** Failed to initialize SDL_mixer: " << Mix_GetError() << std::endl;
		return EXIT_FAILURE;
	}

	Mix_AllocateChannels(64);

	// Initialize TTF library
	if (TTF_Init() == -1) {
		std::cerr << "*** Failed to initialize SDL_ttf: " << TTF_GetError() << std::endl;
		return EXIT_FAILURE;
	}

	// Create a window
	g_WindowWidth = 800;
	g_WindowHeight = 600;
	g_Window = SDL_CreateWindow("Loading...",
		SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
		g_WindowWidth, g_WindowHeight,
		SDL_WINDOW_SHOWN);
	if (!g_Window) {
		std::cerr << "*** Failed to create window: " << SDL_GetError() << std::endl;
		return EXIT_FAILURE;
	}

	// Get a pointer to keyboard state managed by SDL
	g_KeyStates = SDL_GetKeyboardState(NULL);

	// Create a renderer that takes care of drawing stuff to the window
	g_Renderer = SDL_CreateRenderer(g_Window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
	if (!g_Renderer) {
		std::cerr << "*** Failed to create renderer: " << SDL_GetError() << std::endl;
		return EXIT_FAILURE;
	}

	SDL_SetRenderDrawBlendMode(g_Renderer, SDL_BLENDMODE_BLEND);

	// Create game
	Game game;

	if (!game.Initialize()) {
		std::cerr << "*** Game initialization failed" << std::endl;
		return EXIT_FAILURE;
	}

	// Main loop

	// Start tracking total game time and frame time
	g_Timer.Start();
	Timer frameTimer;
	frameTimer.Start();

	while (!g_ShouldQuit) {
		++g_FrameNo;

		// Draw current frame
		game.Draw(g_Renderer);
		SDL_RenderPresent(g_Renderer);

		// Forward events to game handlers
		SDL_Event e;
		while (SDL_PollEvent(&e)) {
			switch (e.type) {
			case SDL_QUIT:
				g_ShouldQuit = true;
				break;
			case SDL_KEYDOWN:
				game.OnKeyDown(e.key);
				break;
			case SDL_KEYUP:
				game.OnKeyUp(e.key);
				break;
			case SDL_MOUSEBUTTONDOWN:
				game.OnMouseDown(e.button);
				break;
			case SDL_MOUSEBUTTONUP:
				game.OnMouseUp(e.button);
				break;
			case SDL_MOUSEMOTION:
				game.OnMouseMotion(e.motion);
				break;
			default:
				break;
			}
		}

		// Update total game time
		g_Time = g_Timer.GetTime();

		// Get time elapsed since last frame and restart frame timer
		g_TimeSinceLastFrame = frameTimer.GetTime();
		frameTimer.Start();

		// Update game if it's not paused
		if (!g_IsPaused) {
			game.Update(g_TimeSinceLastFrame);
		}
	}

	// Cleanup
	game.Shutdown();
	TTF_Quit();
	IMG_Quit();
	Mix_Quit();
	SDL_Quit();

	std::cout << "## Goodbye!" << std::endl;
	return 0;
}