animator has been made for right/left/up/down

This commit is contained in:
HENRY Benjamin
2021-06-03 12:29:46 +02:00
parent d86e4fc358
commit 45ee02e06b
3 changed files with 29 additions and 12 deletions
+2 -2
View File
@@ -53,7 +53,6 @@ namespace BBM
.addSystem<GamepadSystem>()
.addSystem<ControllableSystem>()
.addSystem<CollisionSystem>(wal)
.addSystem<AnimatorSystem>()
.addSystem<MovableSystem>();
}
@@ -65,6 +64,7 @@ namespace BBM
wal.addSystem<Renderer3DSystem<RAY3D::Model>>();
wal.addSystem<Renderer3DSystem<RAY3D::Cube>>();
wal.addSystem<AnimationsSystem>();
wal.addSystem<AnimatorSystem>();
wal.addSystem<Render2DScreenSystem>(window)
.addSystem<Renderer2DSystem<RAY2D::Rectangle>>();
@@ -80,7 +80,7 @@ namespace BBM
.addComponent<ControllableComponent>()
.addComponent<AnimatorComponent>()
.addComponent<KeyboardComponent>()
.addComponent<AnimationsComponent>(RAY::ModelAnimations("assets/player/player.iqm"), 3)
.addComponent<AnimationsComponent>(RAY::ModelAnimations("assets/player/player.iqm"), 1)
.addComponent<CollisionComponent>(2)
.addComponent<MovableComponent>();
scene->addEntity("cube")
+18 -8
View File
@@ -7,40 +7,50 @@
#include <Controllers/Keyboard.hpp>
#include <Model/Model.hpp>
#include <Component/Animation/AnimationsComponent.hpp>
#include <Component/Controllable/ControllableComponent.hpp>
#include "AnimatorSystem.hpp"
#include "Component/Renderer/Drawable3DComponent.hpp"
using Keyboard = RAY::Controller::Keyboard;
namespace RAY3D = RAY::Drawables::Drawables3D;
using Key = RAY::Controller::Keyboard::Key;
namespace BBM
{
AnimatorSystem::AnimatorSystem()
: WAL::System({
typeid(AnimatorComponent),
typeid(KeyboardComponent)
typeid(ControllableComponent)
})
{}
void AnimatorSystem::onFixedUpdate(WAL::Entity &entity)
{
if (!entity.hasComponent<KeyboardComponent>())
if (!entity.hasComponent<ControllableComponent>())
return;
const auto &controllable = entity.getComponent<ControllableComponent>();
auto &model = entity.getComponent<Drawable3DComponent<RAY3D::Model>>();
auto &animation = entity.getComponent<AnimationsComponent>();
const auto &keyboard = entity.getComponent<KeyboardComponent>();
animation.setAnimIndex(1);
if (Keyboard::isDown(keyboard.keyRight)) {
if (controllable.move.x == 1) {
model.member.setRotationAngle(180.0f);
animation.setAnimIndex(0);
return;
}
if (Keyboard::isDown(keyboard.keyLeft)) {
if (controllable.move.x == -1) {
model.member.setRotationAngle(0.0f);
animation.setAnimIndex(0);
return;
}
if (Keyboard::isDown(keyboard.keyUp)) {
if (controllable.move.y == 1) {
model.member.setRotationAngle(90.0f);
animation.setAnimIndex(0);
return;
}
if (Keyboard::isDown(keyboard.keyDown)) {
if (controllable.move.y == -1) {
model.member.setRotationAngle(270.0f);
animation.setAnimIndex(0);
return;
}
animation.setAnimIndex(1);
}
}
+9 -2
View File
@@ -3,6 +3,7 @@
// Edited by Benjamin Henry on 2021-05-20.
//
#include <Component/Animation/AnimationsComponent.hpp>
#include "HealthSystem.hpp"
#include "Component/Health/HealthComponent.hpp"
#include "Component/Controllable/ControllableComponent.hpp"
@@ -12,7 +13,8 @@ namespace BBM
{
HealthSystem::HealthSystem()
: WAL::System({
typeid(HealthComponent)
typeid(HealthComponent),
typeid(AnimationsComponent)
})
{}
@@ -20,7 +22,12 @@ namespace BBM
{
auto &health = entity.getComponent<HealthComponent>();
if (health.getHealthPoint() == 0)
if (health.getHealthPoint() == 0) {
if (entity.hasComponent<AnimationsComponent>()) {
auto &animation = entity.getComponent<AnimationsComponent>();
animation.setAnimIndex(5);
}
health.onDeath(entity);
}
}
}