void MenuBehaviour::SetMenuItemsPosition() { float centerX = Game::WINDOW_WIDTH / 2.0f; float totalHeight = 0.0f; for (auto item = m_menuItems.begin(); item != m_menuItems.end(); ++item) totalHeight += item->GetGlobalBounds().Height + MARGIN; float top = Game::WINDOW_HEIGHT / 2 - totalHeight / 2; for (auto item = m_menuItems.begin(); item != m_menuItems.end(); ++item) { item->SetPosition(centerX - item->GetGlobalBounds().Width / 2, top); top += item->GetGlobalBounds().Height + MARGIN; } }
bool Enemy::Contact(Player &player) { FloatRect playr = player.GetGlobalBounds(); FloatRect enmy = GetGlobalBounds(); if(enmy.intersects(playr)) return true; return false; }
bool Enemy::Move() { FloatRect enemy = GetGlobalBounds(); if(status == DEAD && enemy.top < 721) sprite.move(0,3*speed); else if(status == GO_RIGHT && (enemy.left + enemy.width)< startx + movement) GoRight(); else if(status == GO_RIGHT && (enemy.left + enemy.width)>= startx + movement) GoLeft(); else if(status == GO_LEFT && enemy.left > startx) GoLeft(); else if(status == GO_LEFT && enemy.left <= startx) GoRight(); else return false; return true; }
void MenuBehaviour::Render(sf::RenderTarget& target, float interpolation) { sf::Sprite background = m_resources.Get(Sprite_Background); target.Draw(background); auto title = m_resources.GetText("Ulderico - Alpha"); title.SetPosition(Game::WINDOW_WIDTH / 2 - title.GetGlobalBounds().Width / 2, 40.0f); target.Draw(title); for (auto item = m_menuItems.begin(); item != m_menuItems.end(); ++item) target.Draw(*item); }
void Enemy::OnContact(Player &player) { FloatRect playr = player.GetGlobalBounds(); FloatRect enmy = GetGlobalBounds(); if((playr.top + playr.height)<=enmy.top+5) { if(status == GO_RIGHT) i = 4; else i = 5; status = DEAD; } else { player.health -= damage; player.Back(); } }
void MenuBehaviour::HandleMouseClick(sf::Event::MouseButtonEvent const& e) { for (auto item = m_menuItems.begin(); item != m_menuItems.end(); ++item) { auto bounds = item->GetGlobalBounds(); auto text = item->GetString(); if (bounds.Contains(static_cast<float>(e.X), static_cast<float>(e.Y))) { if (text == STR_GAME_START) m_game.ChangeState(GameState_InGame); else if(text == STR_HIGHSCORE) m_game.ChangeState(GameState_Highscore); else if(text == STR_QUIT) m_game.Quit(); break; } } }