pr comments fixs

This commit is contained in:
Clément Le Bihan
2021-06-15 17:31:50 +02:00
parent a0784875d3
commit 6256116252
3 changed files with 43 additions and 42 deletions
+1 -1
View File
@@ -37,7 +37,7 @@ namespace BBM
.addComponent<PositionComponent>(8, 20, 7)
.addComponent<CameraComponent>(Vector3f(8, 0, 8));
scene->addEntity("Timer")
.addComponent<TimerComponent>(std::chrono::seconds(60), [](WAL::Entity &, WAL::Wal &) {
.addComponent<TimerComponent>(std::chrono::minutes (3), [](WAL::Entity &, WAL::Wal &) {
Runner::gameState.nextScene = GameState::ScoreScene;
});
MapGenerator::loadMap(16, 16, MapGenerator::createMap(16, 16), scene);
+36 -36
View File
@@ -20,33 +20,33 @@ namespace BBM
{
std::shared_ptr<WAL::Scene> Runner::loadScoreScene(WAL::Scene &gameScene)
{
auto scene = std::make_shared<WAL::Scene>();
std::vector<std::string> playersIconPath;
std::vector<std::reference_wrapper<WAL::Entity>>players;
auto scene = std::make_shared<WAL::Scene>();
std::vector<std::string> playersIconPath;
std::vector<std::reference_wrapper<WAL::Entity>> players;
static const std::map<SoundComponent::SoundIndex, std::string> sounds = {
{SoundComponent::JUMP, "assets/sounds/click.ogg"}
};
static const std::vector<RAY::Color> tilesColor = {
GOLD, GRAY, BROWN, PURPLE
};
static const std::vector<std::string> rankName = {
"1st", "2nd", "3rd", "4th"
};
static const std::vector<RAY::Color> tilesColor = {
GOLD, GRAY, BROWN, PURPLE
};
static const std::vector<std::string> rankName = {
"1st", "2nd", "3rd", "4th"
};
for (auto &[entity, score, drawable]: gameScene.view<ScoreComponent, Drawable3DComponent>())
players.push_back(entity);
std::sort(players.begin(), players.end(), [](WAL::Entity &entityA, WAL::Entity &entityB) {
return entityA.getComponent<ScoreComponent>().aliveTime > entityB.getComponent<ScoreComponent>().aliveTime;
});
for (auto &[entity, score, drawable]: gameScene.view<ScoreComponent, Drawable3DComponent>())
players.push_back(entity);
std::sort(players.begin(), players.end(), [](WAL::Entity &entityA, WAL::Entity &entityB) {
return entityA.getComponent<ScoreComponent>().aliveTime > entityB.getComponent<ScoreComponent>().aliveTime;
});
for (auto &entity: players) {
RAY3D::Model *model = dynamic_cast<RAY3D::Model *>(entity.get().getComponent<Drawable3DComponent>().drawable.get());
std::string path = model->getTextureByMaterial(MAP_DIFFUSE).getResourcePath();
playersIconPath.push_back(path.replace(path.find("textures"), std::string("textures").size(), "icons"));
}
for (auto &entity: players) {
RAY3D::Model *model = dynamic_cast<RAY3D::Model *>(entity.get().getComponent<Drawable3DComponent>().drawable.get());
std::string path = model->getTextureByMaterial(MAP_DIFFUSE).getResourcePath();
playersIconPath.push_back(path.replace(path.find("textures"), std::string("textures").size(), "icons"));
}
addMenuControl(*scene);
scene->addEntity("Audio ressources")
addMenuControl(*scene);
scene->addEntity("Audio ressources")
.addComponent<MusicComponent>("assets/musics/music_result.ogg")
.addComponent<SoundComponent>(sounds);
scene->addEntity("background")
@@ -55,39 +55,39 @@ namespace BBM
scene->addEntity("scene title text")
.addComponent<PositionComponent>(1920 / 3.25, 100, 0)
.addComponent<Drawable2DComponent, RAY2D::Text>("GAME OVER", 120, RAY::Vector2(), ORANGE);
scene->addEntity("scene title text")
scene->addEntity("scene title text")
.addComponent<PositionComponent>(1920 / 2.37, 250, 0)
.addComponent<Drawable2DComponent, RAY2D::Text>("CONGRATS", 50, RAY::Vector2(), ORANGE);
for (int i = 0; i < players.size(); i++) {
for (int i = 0; i < players.size(); i++) {
auto &playerTile = scene->addEntity("player tile")
.addComponent<PositionComponent>(224 * (i + 1) + 200 * i, 1080 / 2.5, 0)
.addComponent<Drawable2DComponent, RAY2D::Rectangle>(RAY::Vector2(224 * (i + 1) + 200 * i, 1080 / 3), RAY::Vector2(200, 200),tilesColor[i]);
auto &playerRank = scene->addEntity("player rank name")
.addComponent<Drawable2DComponent, RAY2D::Rectangle>(RAY::Vector2(224 * (i + 1) + 200 * i, 1080 / 3),
RAY::Vector2(200, 200), tilesColor[i]);
auto &playerRank = scene->addEntity("player rank name")
.addComponent<PositionComponent>(224 * (i + 1) + 200 * i, 1080 / 2.75, 0)
.addComponent<Drawable2DComponent, RAY2D::Text>(rankName[i], 30, RAY::Vector2(224 * (i + 1) + 200 * i, 1080 / 3), tilesColor[i]);
.addComponent<Drawable2DComponent, RAY2D::Text>(rankName[i], 30,
RAY::Vector2(224 * (i + 1) + 200 * i, 1080 / 3),
tilesColor[i]);
auto &player = scene->addEntity("player")
.addComponent<PositionComponent>(224 * (i + 1) + 200 * i, 1080 / 2.5, 0)
.addComponent<Drawable2DComponent, RAY::Texture>(playersIconPath[i]);
}
scene->addEntity("back to main menu")
}
scene->addEntity("back to main menu")
.addComponent<PositionComponent>(10, 1080 - 85, 0)
.addComponent<Drawable2DComponent, RAY::Texture>("assets/buttons/button_back.png")
.addComponent<OnClickComponent>([](WAL::Entity &entity, WAL::Wal &)
{
.addComponent<OnClickComponent>([](WAL::Entity &entity, WAL::Wal &) {
gameState.nextScene = BBM::GameState::SceneID::MainMenuScene;
})
.addComponent<OnIdleComponent>([](WAL::Entity &entity, WAL::Wal &)
{
.addComponent<OnIdleComponent>([](WAL::Entity &entity, WAL::Wal &) {
RAY::Texture *texture = dynamic_cast<RAY::Texture *>(entity.getComponent<Drawable2DComponent>().drawable.get());
texture->use("assets/buttons/button_back.png");
})
.addComponent<OnHoverComponent>([](WAL::Entity &entity, WAL::Wal &)
{
.addComponent<OnHoverComponent>([](WAL::Entity &entity, WAL::Wal &) {
RAY::Texture *texture = dynamic_cast<RAY::Texture *>(entity.getComponent<Drawable2DComponent>().drawable.get());
texture->use("assets/buttons/button_back_hovered.png");
});
return scene;
}
return scene;
}
}
@@ -4,7 +4,8 @@
#include "Runner/Runner.hpp"
#include "Component/Score/ScoreComponent.hpp"
namespace BBM {
namespace BBM
{
EndConditionSystem::EndConditionSystem(WAL::Wal &wal)
: System(wal)
@@ -17,9 +18,9 @@ namespace BBM {
if (!view.size())
return;
for (auto & [_ , scoreComponent, healthComponent]: view)
alivePlayersCount += (healthComponent.getHealthPoint() != 0);
if (alivePlayersCount <= 1)
Runner::gameState.nextScene = Runner::gameState.ScoreScene;
for (auto &[_, scoreComponent, healthComponent]: view)
alivePlayersCount += (healthComponent.getHealthPoint() != 0);
if (alivePlayersCount <= 1)
Runner::gameState.nextScene = Runner::gameState.ScoreScene;
}
}