void prepareFild() { drawGameFrame(); char color = LifeMap::WHITE_CELL; gameMenu::drawGameHelp(color); LifeMap gameMap; int xPos = LifeMap::widht/2; int yPos = LifeMap::height/2; while(true) { drawMap(gameMap, xPos, yPos, color); TCODConsole::root->flush(); TCOD_key_t key = TCODConsole::waitForKeypress(true); switch(key.c) { case ' ': gameMap.set(xPos, yPos, color); break; case 's': // SAVE break; case 'q': // QUIT DIALOG return; case 'w': color = LifeMap::WHITE_CELL; gameMenu::drawGameHelp(color); break; case 'r': color = LifeMap::RED_CELL; gameMenu::drawGameHelp(color); break; case 'g': color = LifeMap::GREEN_CELL; gameMenu::drawGameHelp(color); break; case 'b': color = LifeMap::BLUE_CELL; gameMenu::drawGameHelp(color); break; default: switch(key.vk) { case TCODK_ENTER: startGame(gameMap); return; case TCODK_LEFT: xPos = (xPos+LifeMap::widht-1)%LifeMap::widht; break; case TCODK_UP: yPos = (yPos+LifeMap::height-1)%LifeMap::height; break; case TCODK_DOWN: yPos = (yPos+1)%LifeMap::height; break; case TCODK_RIGHT: xPos = (xPos+1)%LifeMap::widht; break; default: break; } } } }
int main() { window = new sf::RenderWindow(sf::VideoMode(RES_X, RES_Y), "I love this Game"); sf::Clock clock; float frameTime = 1/60.0f; float dTime = 0; initialiseGame(); while (window->isOpen()) { dTime += clock.getElapsedTime().asSeconds(); clock.restart(); // Event handling sf::Event event; while(window->pollEvent(event)) { processEvent(event); } // Safeguard (slowdown) to prevent game from lagging to death if (dTime > 5*frameTime) dTime = 5*frameTime; // Update game while (dTime > frameTime) { dTime -= frameTime; updateGame(); } // Draw frame window->clear(); drawGameFrame(); window->display(); } delete window; return 0; }