mirror of
https://github.com/zoriya/Bomberman.git
synced 2026-06-04 18:46:22 +00:00
Merge pull request #152 from AnonymusRaccoon/bomb_animator
Bomb animator
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 46 KiB |
Binary file not shown.
+17
-3
@@ -106,9 +106,25 @@ namespace BBM
|
||||
static const std::string unbreakableObj = unbreakableWallPath + objExtension;
|
||||
static const std::string unbreakablePnj = unbreakableWallPath + imageExtension;
|
||||
|
||||
for (int i = 0; i < height; i++) {
|
||||
scene->addEntity("Bomb stopper")
|
||||
.addComponent<PositionComponent>(-1, 0, i)
|
||||
.addComponent<TagComponent<Blowable>>();
|
||||
scene->addEntity("Bomb stopper")
|
||||
.addComponent<PositionComponent>(width + 1, 0, i)
|
||||
.addComponent<TagComponent<Blowable>>();
|
||||
}
|
||||
for (int i = 0; i < width; i++) {
|
||||
scene->addEntity("Bomb stopper")
|
||||
.addComponent<PositionComponent>(i, 0, -1)
|
||||
.addComponent<TagComponent<Blowable>>();
|
||||
scene->addEntity("Bomb stopper")
|
||||
.addComponent<PositionComponent>(i, 0, height + 1)
|
||||
.addComponent<TagComponent<Blowable>>();
|
||||
}
|
||||
|
||||
scene->addEntity("Bottom Wall")
|
||||
.addComponent<PositionComponent>(Vector3f((width + 1) / 2, 0, -1))
|
||||
.addComponent<TagComponent<Blowable>>()
|
||||
.addComponent<CollisionComponent>(
|
||||
WAL::Callback<WAL::Entity &, const WAL::Entity &, CollisionComponent::CollidedAxis>(),
|
||||
&MapGenerator::wallCollided, Vector3f(-(width + 1) / 2 , 0.25, 0.25), Vector3f(width + 1, 2, 0.75))
|
||||
@@ -117,7 +133,6 @@ namespace BBM
|
||||
RAY::Vector3(width + 3, 1, 1));
|
||||
scene->addEntity("Upper Wall")
|
||||
.addComponent<PositionComponent>(Vector3f((width + 1) / 2, 0, height + 1))
|
||||
.addComponent<TagComponent<Blowable>>()
|
||||
.addComponent<CollisionComponent>(
|
||||
WAL::Callback<WAL::Entity &, const WAL::Entity &, CollisionComponent::CollidedAxis>(),
|
||||
&MapGenerator::wallCollided, Vector3f(-(width + 1) / 2 , 0.25, 0.25), Vector3f(width + 1, 2, 0.75))
|
||||
@@ -126,7 +141,6 @@ namespace BBM
|
||||
RAY::Vector3(width + 3, 1, 1));
|
||||
scene->addEntity("Left Wall")
|
||||
.addComponent<PositionComponent>(Vector3f(width + 1, 0, height / 2))
|
||||
.addComponent<TagComponent<Blowable>>()
|
||||
.addComponent<CollisionComponent>(
|
||||
WAL::Callback<WAL::Entity &, const WAL::Entity &, CollisionComponent::CollidedAxis>(),
|
||||
&MapGenerator::wallCollided, Vector3f(0.25, 0.25, -(height + 1) / 2 ), Vector3f(0.75, 2, height + 1))
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
// Created by Zoe Roux on 5/31/21.
|
||||
//
|
||||
|
||||
#include <Component/Animation/AnimationsComponent.hpp>
|
||||
#include <Component/Bomb/BasicBombComponent.hpp>
|
||||
#include "Component/Timer/TimerComponent.hpp"
|
||||
#include "System/Event/EventSystem.hpp"
|
||||
@@ -39,6 +40,13 @@ namespace BBM
|
||||
{
|
||||
if (count <= 0)
|
||||
return;
|
||||
wal.getScene()->scheduleNewEntity("explosion")
|
||||
.addComponent<PositionComponent>(position)
|
||||
.addComponent<TimerComponent>(1s, [](WAL::Entity &explosion, WAL::Wal &wal) {
|
||||
explosion.scheduleDeletion();
|
||||
})
|
||||
.addComponent<Drawable3DComponent, RAY3D::Model>("assets/bombs/explosion/explosion.glb", false,
|
||||
std::make_pair(MAP_DIFFUSE, "assets/bombs/explosion/blast.png"));
|
||||
wal.getSystem<EventSystem>().dispatchEvent([position, count](WAL::Wal &wal) {
|
||||
for (auto &[entity, pos, _] : wal.getScene()->view<PositionComponent, TagComponent<Blowable>>()) {
|
||||
if (pos.position.round() == position) {
|
||||
|
||||
Reference in New Issue
Block a user