diff --git a/CMakeLists.txt b/CMakeLists.txt index c1a406d0..ce165ce7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -181,7 +181,7 @@ set(SOURCES sources/Component/Color/ColorComponent.cpp sources/Component/Stat/StatComponent.cpp sources/Component/Stat/StatComponent.hpp - ) + sources/Component/Speed/SpeedComponent.cpp sources/Component/Speed/SpeedComponent.hpp) add_executable(bomberman sources/main.cpp diff --git a/sources/Component/Speed/SpeedComponent.cpp b/sources/Component/Speed/SpeedComponent.cpp new file mode 100644 index 00000000..2472d8c4 --- /dev/null +++ b/sources/Component/Speed/SpeedComponent.cpp @@ -0,0 +1,24 @@ +// +// Created by cbihan on 18/06/2021. +// + +#include "SpeedComponent.hpp" + +namespace BBM +{ + SpeedComponent::SpeedComponent(WAL::Entity &entity) : + WAL::Component(entity) + { + } + + WAL::Component *SpeedComponent::clone(WAL::Entity &entity) const + { + return new SpeedComponent(this->_entity, this->speed); + } + + SpeedComponent::SpeedComponent(WAL::Entity &entity, float entitySpeed) : + WAL::Component(entity), + speed(entitySpeed) + { + } +} \ No newline at end of file diff --git a/sources/Component/Speed/SpeedComponent.hpp b/sources/Component/Speed/SpeedComponent.hpp new file mode 100644 index 00000000..3b2fc650 --- /dev/null +++ b/sources/Component/Speed/SpeedComponent.hpp @@ -0,0 +1,34 @@ +// +// Created by cbihan on 18/06/2021. +// + +#pragma once + +#include + +namespace BBM +{ + class SpeedComponent : WAL::Component + { + public: + //! @brief entity speed + float speed = .15f; + + //! @inherit + WAL::Component *clone(WAL::Entity &entity) const override; + + //! @brief Initialize a new controllable component. + explicit SpeedComponent(WAL::Entity &entity); + + //! @brief Initialize a new controllable component. + explicit SpeedComponent(WAL::Entity &entity, float entitySpeed); + //! @brief A Controllable component is copy constructable. + SpeedComponent(const SpeedComponent &) = default; + //! @brief default destructor + ~SpeedComponent() override = default; + //! @brief A Controllable component can't be assigned + SpeedComponent &operator=(const SpeedComponent &) = delete; + }; + + +} \ No newline at end of file