int main() { srand(time(0)); sf::ContextSettings settings; settings.antialiasingLevel = 8; // create the window sf::RenderWindow window(sf::VideoMode(928, 448), "Labshooter", sf::Style::Default, settings); sf::Clock clock; sf::Texture playerTexture; playerTexture.loadFromFile("assets/player.png"); sf::Texture tileTexture; tileTexture.loadFromFile("assets/tile.png"); sf::Sprite playerSprite; playerSprite.setTexture(playerTexture); sf::Sprite tileSprite; tileSprite.setTexture(tileTexture); SoundManager::LoadSound("shoot", "assets/shoot.wav"); SoundManager::LoadSound("shoot2", "assets/shoot2.wav"); SoundManager::LoadSound("hurt", "assets/hurt.wav"); level.LoadLevel("assets/level1"); // run the program as long as the window is open while (window.isOpen()) { sf::Time elapsed = clock.restart(); // check all the window's events that were triggered since the last iteration of the loop sf::Event event; while (window.pollEvent(event)) { // "close requested" event: we close the window if (event.type == sf::Event::Closed) window.close(); } level.Update(elapsed.asMilliseconds()); /*if(sf::Keyboard::isKeyPressed(sf::Keyboard::D)) { move(0.5 * elapsed.asMilliseconds(), 0, playerSprite, tileSprite); } if(sf::Keyboard::isKeyPressed(sf::Keyboard::A)) { move(-0.5 * elapsed.asMilliseconds(), 0, playerSprite, tileSprite); } if(sf::Keyboard::isKeyPressed(sf::Keyboard::W)) { move(0, -0.5 * elapsed.asMilliseconds(), playerSprite, tileSprite); } if(sf::Keyboard::isKeyPressed(sf::Keyboard::S)) { move(0, 0.5 * elapsed.asMilliseconds(), playerSprite, tileSprite); }*/ tileSprite.setPosition(50, 50); // clear the window with black color window.clear(sf::Color::White); // draw everything here... //window.draw(playerSprite); //window.draw(tileSprite); level.Render(&window); // end the current frame window.display(); } return 0; }
int mainloop(SDL_Surface* screen) { Level tmp; SDL_Event event; int x = 0, y = 0; int xscroll = 0, yscroll = 0; if (tmp.FromFile("herpaderp.lvl")) { fprintf(stderr, "%s: error: file \"herpaderp.lvl\" doesn't exist\n", PROGNAME); return 1; } tmp.Render(screen, x, y); SDL_UpdateRect(screen, 0,0,0,0); while (1) { x += xscroll; y += yscroll; SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0)); tmp.Render(screen, x, y); SDL_UpdateRect(screen, 0,0,0,0); if (SDL_PollEvent(&event)) { switch (event.type) { case SDL_QUIT: return 1; break; } // This will be massively cleaned up later if (event.type == SDL_KEYDOWN || event.type == SDL_KEYUP) { SDLKey key = event.key.keysym.sym; if (event.type == SDL_KEYDOWN) { switch (key) { case SDLK_ESCAPE: return 1; case SDLK_LEFT: xscroll--; break; case SDLK_RIGHT: xscroll++; break; case SDLK_UP: yscroll--; break; case SDLK_DOWN: yscroll++; break; default: break; } } else // must be KEYUP { switch (key) { case SDLK_LEFT: xscroll++; break; case SDLK_RIGHT: xscroll--; break; case SDLK_UP: yscroll++; break; case SDLK_DOWN: yscroll--; break; default: break; } } } } SDL_Delay(1); } return 0; }