mirror of
https://github.com/zoriya/Bomberman.git
synced 2026-05-27 08:13:18 +00:00
Handling draws
This commit is contained in:
@@ -33,20 +33,21 @@ namespace BBM
|
||||
"1st", "2nd", "3rd", "4th"
|
||||
};
|
||||
|
||||
for (auto &[entity, score, drawable]: gameScene.view<ScoreComponent, Drawable3DComponent>())
|
||||
players.push_back(entity);
|
||||
for (WAL::Entity &entity: gameScene.view<ScoreComponent, Drawable3DComponent>())
|
||||
players.emplace_back(entity);
|
||||
std::sort(players.begin(), players.end(), [](WAL::Entity &entityA, WAL::Entity &entityB) {
|
||||
return entityA.getComponent<ScoreComponent>().aliveTime > entityB.getComponent<ScoreComponent>().aliveTime;
|
||||
});
|
||||
auto bestTime = players.front().get().getComponent<ScoreComponent>().aliveTime;
|
||||
|
||||
for (auto &entity: players) {
|
||||
RAY3D::Model *model = dynamic_cast<RAY3D::Model *>(entity.get().getComponent<Drawable3DComponent>().drawable.get());
|
||||
for (auto &entity : players) {
|
||||
auto *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, sounds);
|
||||
scene->addEntity("Audio ressources")
|
||||
scene->addEntity("Audio resources")
|
||||
.addComponent<MusicComponent>("assets/musics/music_result.ogg")
|
||||
.addComponent<SoundComponent>(sounds);
|
||||
scene->addEntity("background")
|
||||
@@ -58,34 +59,36 @@ namespace BBM
|
||||
scene->addEntity("scene title text")
|
||||
.addComponent<PositionComponent>(1920 / 2.37, 250, 0)
|
||||
.addComponent<Drawable2DComponent, RAY2D::Text>("CONGRATS", 50, RAY::Vector2(), ORANGE);
|
||||
for (size_t i = 0; i < players.size(); i++) {
|
||||
for (std::size_t i = 0; i < players.size(); i++) {
|
||||
std::size_t place = i;
|
||||
if (players[i].get().getComponent<ScoreComponent>().aliveTime == bestTime)
|
||||
place = 0;
|
||||
|
||||
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]);
|
||||
RAY::Vector2(200, 200), tilesColor[place]);
|
||||
scene->addEntity("player rank name")
|
||||
.addComponent<PositionComponent>(224 * (i + 1) + 200 * i, 1080 / 2.75, 0)
|
||||
.addComponent<Drawable2DComponent, RAY2D::Text>(rankName[i], 30,
|
||||
.addComponent<Drawable2DComponent, RAY2D::Text>(rankName[place], 30,
|
||||
RAY::Vector2(224 * (i + 1) + 200 * i, 1080 / 3),
|
||||
tilesColor[i]);
|
||||
tilesColor[place]);
|
||||
scene->addEntity("player")
|
||||
.addComponent<PositionComponent>(224 * (i + 1) + 200 * i, 1080 / 2.5, 0)
|
||||
.addComponent<Drawable2DComponent, RAY::Texture>(playersIconPath[i]);
|
||||
.addComponent<Drawable2DComponent, RAY::Texture>(playersIconPath[place]);
|
||||
}
|
||||
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 &, WAL::Wal &) {
|
||||
gameState.nextScene = BBM::GameState::SceneID::MainMenuScene;
|
||||
})
|
||||
.addComponent<OnIdleComponent>([](WAL::Entity &entity, WAL::Wal &) {
|
||||
RAY::Texture *texture = dynamic_cast<RAY::Texture *>(entity.getComponent<Drawable2DComponent>().drawable.get());
|
||||
|
||||
auto *texture = dynamic_cast<RAY::Texture *>(entity.getComponent<Drawable2DComponent>().drawable.get());
|
||||
texture->use("assets/buttons/button_back.png");
|
||||
})
|
||||
.addComponent<OnHoverComponent>([](WAL::Entity &entity, WAL::Wal &) {
|
||||
RAY::Texture *texture = dynamic_cast<RAY::Texture *>(entity.getComponent<Drawable2DComponent>().drawable.get());
|
||||
|
||||
auto *texture = dynamic_cast<RAY::Texture *>(entity.getComponent<Drawable2DComponent>().drawable.get());
|
||||
texture->use("assets/buttons/button_back_hovered.png");
|
||||
});
|
||||
return scene;
|
||||
|
||||
Reference in New Issue
Block a user