Esempio n. 1
0
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;
                }
        }
    }
}
Esempio n. 2
0
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;
}