#pragma once #include <kernel/front/props/PropsPlayable.hpp> #include <game/back/GameObject.hpp> #include <game/back/object/Level.hpp> namespace megu::game { class Player : public kernel::PropsPlayable, public GameProps { public: Player(float x, float y, float w, float h, std::filesystem::path &); void move(float, float); void setup(kernel::Kernel &, Level &) override; void destroy(kernel::Kernel &, Level &) override; void apply(kernel::Kernel &) override; void on(const kernel::Prop &, const Event &) override; std::optional<Event> on() const override; void onDamage(const Event &); void onSolide(const kernel::Prop &); kernel::Movable & getPhysic() {return this->_movable;} kernel::Sprite & getGraphic() {return this->_sprite;} private: kernel::Sprite _sprite; kernel::Movable _movable; }; }