// Get worlds in world folder void PixelMap::GetWorlds(GUI_Creator *gui) { if (!gui) return; STRING home = GetSaveFolder(); FileSearch search = FileSearch(); search.path = home; search.deep = false; if (!ListFiles(&search)) return; while (search.files.size()) { STRING file = search.files.top(); search.files.pop(); Level lvl = Level(); lvl.LoadLevel(file); if (lvl.info.seed) { int i = worlds.size(); worlds.push_back(Port::FileName(file)); gui->Append(GUI_WORLDFILE, lvl.info.name, i); } } gui->Set(GUI_WORLDFILE, 0); }
void MyGame::AdditionalInit() { //limit the fps to 60 fps m_iFPSLimit = 60; m_bLimitFPS = true; player.Init("data/animations/xeon_animation.xml"); debugLevel.LoadProjectSettings("data/maps/SDL_Game.oep"); debugLevel.LoadLevel("data/maps/Debug Level.oel"); }
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 main(int argc, char* args[]) { enum {MENU, RUNNING, GAMEOVER, END}; int state = MENU; int score = 0; int deaths = 0; //Holds all game objects vectors vector<Net *> nets; vector<Coral *> corals; vector<School *> schools; vector<SceneryFish *> sceneryFish; vector<GobblerFish *> gobblerFish; //back buffer || bit messy can clean up System system("Fishy Game", false, 640, 480, 32, 60); if (!system.Setup()) { MessageBox(NULL, "SDL DID NOT INITIALISE PROPERLY", NULL, MB_OK); return -1; } SDL_Surface* buffer = system.GetBuffer(); Timer timer; Timer delta; Camera camera(640, 480); Level level; Menu menu; Hud hud; School* school; Net* net = NULL; Coral* coral = NULL; Mix_Music *music = NULL; Fish fish("Sprites/Player_Spritesheet.bmp", 64, 64, 0, 0, 200, 200); level.LoadLevel(fish, corals, nets, sceneryFish, gobblerFish); music = Mix_LoadMUS( "Sounds/DST-Aethereal.wav" ); delta.Start(); while(!system.Done()) { srand(time(NULL)); if(Mix_PlayingMusic () == 0) { Mix_PlayMusic(music, -1); } switch(state) { case MENU: state = (menu.Update( delta, system.GetEvent())); menu.Draw(buffer, camera); break; case RUNNING: hud.Update(score, deaths ); //update fish.Update( delta.GetTicks() ); for( int c = 0; c < corals.size(); c++) { corals[c]->Update(delta.GetTicks()); } for( int i = 0; i < schools.size(); i++) { schools[i]->Update( delta.GetTicks(), fish, corals); for(int j = 0; j < 3; j++) { if(schools[i]->GetFish(j)->GetEaten() && (!schools[i]->GetFish(j)->GetScored())) { deaths += 1; schools[i]->GetFish(j)->SetScored(true); } if(schools[i]->GetFish(j)->GetSaved() && (!schools[i]->GetFish(j)->GetScored())) { score += 10; schools[i]->GetFish(j)->SetScored(true); } } } for( int g = 0; g < gobblerFish.size(); g++) { gobblerFish[g]->Update(delta.GetTicks(), schools); } for( int i = 0; i < nets.size(); i++) { nets[i]->Update(delta.GetTicks(), fish); if(nets[i]->GetReleased()) { school = NULL; school = new School("Sprites/Player_SpriteSheet.bmp", nets[i]->GetOffsetX(), nets[i]->GetOffsetY()); schools.push_back(school); } } for( int f = 0; f < sceneryFish.size(); f++) { sceneryFish[f]->Update(delta.GetTicks(), fish); } camera.Update(fish.GetPosX(), fish.GetPosY(), fish.GetWidth(), fish.GetHeight()); //Draw background first level.DrawBackdrop( buffer, camera ); for( int f = 0; f < sceneryFish.size(); f++) { sceneryFish[f]->Draw( buffer, camera); } for(int s = 0; s < schools.size(); s++) { schools[s]->Draw( buffer, camera ); } level.DrawBackground( buffer, camera ); for(int i = 0; i < nets.size(); i++) { nets[i]->Draw( buffer, camera ); } fish.Draw( buffer, camera ); for(int g = 0; g < gobblerFish.size(); g++) { gobblerFish[g]->Draw( buffer, camera ); } for(int c = 0; c < corals.size(); c++) { corals[c]->Draw( buffer, camera ); } level.DrawForeground( buffer, camera ); hud.Draw( buffer ); if(hud.GetTime() <= 0) { state = GAMEOVER; } break; case GAMEOVER: if(!timer.GetStarted()) { timer.Start(); } menu.DrawGameOver( buffer, hud.GetScore(), hud.GetDeaths()); if(timer.GetTicks() >= 5000) { state = MENU; for(int i = 0; i < schools.size(); i++) { delete schools[i]; } schools.clear(); score = 0; deaths = 0; hud.Reset(); level.ResetLevel(fish, corals, nets, sceneryFish, gobblerFish); timer.Stop(); } break; case END: Mix_FreeMusic(music); delete net; delete coral; system.CleanUp(buffer); return 0; break; } delta.Start(); SDL_Flip( buffer ); SDL_FillRect(buffer, NULL, SDL_MapRGB(buffer->format, 0, 0, 0)); } if(net != NULL) { delete net; } if(coral != NULL) { delete coral; } system.CleanUp(buffer); return 0; }