mirror of
https://github.com/zoriya/Bomberman.git
synced 2026-05-28 16:43:29 +00:00
animator has been made for right/left/up/down
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user