Trying to create a retry button

This commit is contained in:
Zoe Roux
2021-06-17 17:58:02 +02:00
parent 1d5cb1b071
commit cc065a2fb6
3 changed files with 13 additions and 13 deletions
+7 -8
View File
@@ -34,24 +34,23 @@ namespace BBM
static const std::vector<std::string> rankName = {
"1st", "2nd", "3rd", "4th"
};
Runner::gameState._loadedScenes[GameState::LobbyScene] = Runner::loadLobbyScene();
auto &lobbyScene = Runner::gameState._loadedScenes[GameState::LobbyScene];
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;
});
int playerID = 0;
auto entityGarbage = WAL::Entity(*lobbyScene, "");
for (auto &entity: players) {
RAY3D::Model *model = dynamic_cast<RAY3D::Model *>(entity.get().getComponent<Drawable3DComponent>().drawable.get());
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"));
auto &newPlayer = lobbyScene->addEntity("add")
.addComponent<LobbyComponent>(playerID++, entityGarbage, entityGarbage);
auto &newPlayer = scene->addEntity("add");
newPlayer.addComponent<LobbyComponent>(playerID++, newPlayer, newPlayer);
newPlayer.getComponent<LobbyComponent>().layout = entity.get().getComponent<ControllableComponent>().layout;
std::string color = path.substr(path.find_last_of('/'), path.find_last_of('.'));
newPlayer.getComponent<LobbyComponent>().color = std::find(LobbySystem::colors.begin(), LobbySystem::colors.end(), color) - LobbySystem::colors.begin();
}
addMenuControl(*scene, sounds);
+4 -4
View File
@@ -27,7 +27,7 @@ namespace RAY2D = RAY::Drawables::Drawables2D;
namespace BBM
{
std::array<std::string, 4> LobbySystem::_colors = {
std::array<std::string, 4> LobbySystem::colors = {
"blue",
"red",
"green",
@@ -60,7 +60,7 @@ namespace BBM
lobby.color = 0;
} while (this->_colorTaken[lobby.color]);
this->_colorTaken[lobby.color] = true;
entity.get<Drawable2DComponent>().drawable = std::make_shared<RAY::Texture>("assets/player/icons/" + _colors[lobby.color] + ".png");
entity.get<Drawable2DComponent>().drawable = std::make_shared<RAY::Texture>("assets/player/icons/" + colors[lobby.color] + ".png");
lobby.coloredTile.getComponent<Drawable2DComponent>().drawable->setColor(_rayColors[lobby.color]);
}
@@ -216,8 +216,8 @@ namespace BBM
(Runner::hasHeights ? 1.01 : 0),
mapHeight * (!(playerCount % 3)));
auto *model = dynamic_cast<RAY3D::Model *>(player.getComponent<Drawable3DComponent>().drawable.get());
model->setTextureToMaterial(MAP_DIFFUSE, "assets/player/textures/" + _colors[lobby.color] + ".png");
std::string texturePath = "assets/player/ui/" + _colors[lobby.color] + ".png";
model->setTextureToMaterial(MAP_DIFFUSE, "assets/player/textures/" + colors[lobby.color] + ".png");
std::string texturePath = "assets/player/ui/" + colors[lobby.color] + ".png";
int x = (playerCount % 2 == 0) ? 1920 - 10 - 320 : 10;
int y = (playerCount % 3 != 0) ? 1080 - 10 - 248 : 10;
scene->addEntity("player color tile")
+2 -1
View File
@@ -22,12 +22,13 @@ namespace BBM
void _nextColor(WAL::ViewEntity<LobbyComponent, Drawable2DComponent> &entity);
static std::array<std::string, 4> _colors;
static std::array<RAY::Color, 4> _rayColors;
std::array<bool, 4> _colorTaken = {};
public:
static std::array<std::string, 4> colors;
//! @inherit
void onUpdate(WAL::ViewEntity<LobbyComponent, Drawable2DComponent> &entity, std::chrono::nanoseconds dtime) override;