void GameState::init() { if (m_xLevel != nullptr) { delete m_xLevel; m_xLevel = nullptr; } m_xLevel = new Level("../resources/level/", m_xSpriteManager, m_xGameObjectManager); m_xLevel->loadColorCodes("colorcodes.txt"); m_xLevel->loadFloorColorCodes("floorcolorcodes.txt"); m_xLevel->getRotationsPaths("rotate.txt"); m_xLevel->create("level.png", "patrol.txt"); m_xLevel->createFloor("FirstFloor.png"); sf::Clock *xTimer = new sf::Clock; m_cClock = sf::Clock(); //m_xPlayer = m_xGameObjectManager->createPlayer(m_xSpriteManager->loadSprite("spy.txt"), sf::Vector2f(64 * 48, 64 * 8), m_xEngine->m_window, 1, m_xLevel, xTimer); m_xPlayer = m_xGameObjectManager->createPlayer(new Animator(m_xSpriteManager, "../resources/Spritesheets/"), m_xSpriteManager->loadAnimatedSprite("Spy_walk.txt"), sf::Vector2f(64 * 48, 64 * 8), m_xEngine->m_window, 1, m_xLevel, xTimer, m_xStateManager); m_vGameObjects[MAIN].push_back(m_xPlayer); m_vGameObjects[MAIN].insert(m_vGameObjects[MAIN].end(), m_xLevel->getObjects()->begin(), m_xLevel->getObjects()->end()); m_xView = new sf::View(); //kommentar m_xView->reset(sf::FloatRect(0, 0, 1920 * 1, 1080 * 1)); /*m_xPlayer->m_xWeapon = new Gun(true, 2, 1.f, 1.f, &m_vGameObjects[MAIN], m_xGameObjectManager, m_xSpriteManager); m_xPlayer->m_xWeapon->setAttachedObject(m_xPlayer);*/ /*m_xPlayer->m_xWeapon = new Baton(true, 10, 1.f, 1.f, &m_vGameObjects[MAIN], m_xLevel, m_xGameObjectManager, m_xSpriteManager); m_xPlayer->m_xWeapon->setAttachedObject(m_xPlayer);*/ m_xPlayer->m_xWeapon = new Garrote(1.f, 2.5f, &m_vGameObjects[MAIN]); m_xPlayer->m_xWeapon->setAttachedObject(m_xPlayer); SoundManager soundmanager("../resources/Music/"); m_sIngame = soundmanager.getMusic("Ingame.ogg"); m_sIngame->setVolume(40.0f); m_sIngame->setLoop(true); m_sIngame->play(); hud = new HUD(m_xView, m_xSpriteManager, m_xPlayer); PathFind *path = new PathFind(m_xLevel); for (auto obj : m_vGameObjects[MAIN]) { if (obj->getType() == PATROLLINGGUARD || obj->getType() == STATIONARYGUARD) { Guard *guard = static_cast<Guard*>(obj); guard->attachAi(new AIManager(guard, m_xLevel, m_xPlayer)); guard->attachAnimator(new Animator(m_xSpriteManager, "../resources/Spritesheets/")); if (guard->getIsRotating()) guard->m_xAIManager->forceCurrentState(AIManager::STATIONARY); else if (guard->getIsPatrolling()) guard->m_xAIManager->forceCurrentState(AIManager::PATROLLING); } } m_xPlayer->setStateObjects(&m_vGameObjects[MAIN]); }