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; }
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; }
// 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(); }
void GameHostX11::Impl::RenderFrame(Game & game) { if (!window || window->IsMinimized()) { // skip rendering return; } game.Draw(); }
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; }
// 显示函数 void Display(void) { glClear(GL_COLOR_BUFFER_BIT); glClear(GL_DEPTH_BUFFER_BIT); // 如果游戏没有结束显示当前的形状 if(tetrisGame.GetStatus()) tetrisFigure.Draw(); //显示游戏界面 tetrisGame.Draw(); glutSwapBuffers(); }
int _tmain(int argc, _TCHAR* argv[]) { Game * pGame = new Game(); while (1) { pGame->Draw(); pGame->Update(); pGame->ProcessInput(); } return 0; }
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; }
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; }
// 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); }
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; }
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; }
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)); }
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; }