Making menues selectable by keyboard or controller

This commit is contained in:
Zoe Roux
2021-06-10 18:05:56 +02:00
parent d328a976ed
commit e38c2e56fe
5 changed files with 53 additions and 70 deletions
+20 -21
View File
@@ -115,9 +115,8 @@ namespace BBM
{SoundComponent::JUMP, "assets/sounds/click.ogg"}
};
auto scene = std::make_shared<WAL::Scene>();
addMenuControl(*scene);
scene->addEntity("control")
.addComponent<ControllableComponent>()
.addComponent<KeyboardComponent>()
.addComponent<SoundComponent>(sounds)
.addComponent<MusicComponent>("assets/musics/music_title.ogg");
scene->addEntity("background")
@@ -145,9 +144,8 @@ namespace BBM
};
auto scene = std::make_shared<WAL::Scene>();
addMenuControl(*scene);
scene->addEntity("Control entity")
.addComponent<ControllableComponent>()
.addComponent<KeyboardComponent>()
.addComponent<MusicComponent>("assets/musics/music_title.ogg")
.addComponent<SoundComponent>(sounds);
scene->addEntity("background")
@@ -246,9 +244,8 @@ namespace BBM
};
auto scene = std::make_shared<WAL::Scene>();
addMenuControl(*scene);
scene->addEntity("Control entity")
.addComponent<ControllableComponent>()
.addComponent<KeyboardComponent>()
.addComponent<MusicComponent>("assets/musics/music_player_select.ogg")
.addComponent<SoundComponent>(sounds);
scene->addEntity("background")
@@ -328,9 +325,8 @@ namespace BBM
};
auto scene = std::make_shared<WAL::Scene>();
addMenuControl(*scene);
scene->addEntity("Control entity")
.addComponent<ControllableComponent>()
.addComponent<KeyboardComponent>()
.addComponent<MusicComponent>("assets/musics/music_player_select.ogg")
.addComponent<SoundComponent>(sounds);
scene->addEntity("background")
@@ -410,9 +406,8 @@ namespace BBM
{SoundComponent::JUMP, "assets/sounds/click.ogg"}
};
addMenuControl(*scene);
scene->addEntity("Control entity")
.addComponent<ControllableComponent>()
.addComponent<KeyboardComponent>()
.addComponent<MusicComponent>("assets/musics/music_title.ogg")
.addComponent<SoundComponent>(sounds);
scene->addEntity("background")
@@ -599,9 +594,6 @@ namespace BBM
std::shared_ptr<WAL::Scene> Runner::loadGameScene()
{
auto scene = std::make_shared<WAL::Scene>();
scene->addEntity("control")
.addComponent<ControllableComponent>()
.addComponent<KeyboardComponent>();
std::map<SoundComponent::SoundIndex, std::string> soundPath ={
{SoundComponent::JUMP, "assets/sounds/jump.wav"},
{SoundComponent::MOVE, "assets/sounds/move.ogg"},
@@ -647,14 +639,6 @@ namespace BBM
.addComponent<Drawable2DComponent, RAY::Texture>("assets/plain_menu_background.png");
scene->addEntity("Control entity")
/*scene->addEntity("cube")
.addComponent<PositionComponent>(5, 0, 5)
.addComponent<ShaderComponentDrawable2D>("assets/shaders/glsl330/grayscale.fs")
//.addComponent<Drawable3DComponent, RAY3D::Cube>(Vector3f(-5, 0, -5), Vector3f(3, 3, 3), RED)
.addComponent<Drawable2DComponent, RAY2D::Rectangle>(BBM::Vector2f{200,200}, BBM::Vector2f{200, 200}, RED)
.addComponent<ControllableComponent>()
.addComponent<KeyboardComponent>()
.addComponent<CollisionComponent>(WAL::Callback<WAL::Entity &, const WAL::Entity &>(), &MapGenerator::wallCollide, 3); */
.addComponent<MusicComponent>("assets/musics/music_title.ogg")
.addComponent<SoundComponent>(sounds);
@@ -695,6 +679,21 @@ namespace BBM
return scene;
}
void Runner::addMenuControl(WAL::Scene &scene)
{
scene.addEntity("Keyboard default control")
.addComponent<ControllableComponent>()
.addComponent<KeyboardComponent>();
scene.addEntity("Keyboard second control")
.addComponent<ControllableComponent>()
.addComponent<KeyboardComponent>(KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_RIGHT_CONTROL, KEY_ENTER, KEY_BACKSPACE);
for (int i = 0; i < 4; i++) {
scene.addEntity("Gamepad controller")
.addComponent<ControllableComponent>()
.addComponent<GamepadComponent>(i);
}
}
void Runner::loadScenes()
{
gameState._loadedScenes[GameState::SceneID::MainMenuScene] = loadMainMenuScene();