CTravels replaces Sticky = true. Put "Travels" component on anything that should be moved down during travel sequences.
This commit is contained in:
@@ -41,9 +41,6 @@ struct Transform : public Component
|
|||||||
glm::vec3 Velocity;
|
glm::vec3 Velocity;
|
||||||
/** Physical scale multiplier. */
|
/** Physical scale multiplier. */
|
||||||
glm::vec3 Scale;
|
glm::vec3 Scale;
|
||||||
|
|
||||||
// Sticky is if it sticks with the player or not. True means it will follow the camera.
|
|
||||||
bool Sticky = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,6 +49,7 @@
|
|||||||
#include "Game/CBrick.h"
|
#include "Game/CBrick.h"
|
||||||
#include "Game/CWall.h"
|
#include "Game/CWall.h"
|
||||||
#include "Game/CBackground.h"
|
#include "Game/CBackground.h"
|
||||||
|
#include "Game/CTravels.h"
|
||||||
#include "Game/CStickyAim.h"
|
#include "Game/CStickyAim.h"
|
||||||
#include "Game/BallSystem.h"
|
#include "Game/BallSystem.h"
|
||||||
#include "Game/HitLagSystem.h"
|
#include "Game/HitLagSystem.h"
|
||||||
@@ -128,6 +129,7 @@ public:
|
|||||||
m_World->ComponentFactory.Register<Components::Lifebuoy>();
|
m_World->ComponentFactory.Register<Components::Lifebuoy>();
|
||||||
m_World->ComponentFactory.Register<Components::Projectile>();
|
m_World->ComponentFactory.Register<Components::Projectile>();
|
||||||
m_World->ComponentFactory.Register<Components::StickyAim>();
|
m_World->ComponentFactory.Register<Components::StickyAim>();
|
||||||
|
m_World->ComponentFactory.Register<Components::Travels>();
|
||||||
|
|
||||||
m_World->ComponentFactory.Register<Components::PowerUp>();
|
m_World->ComponentFactory.Register<Components::PowerUp>();
|
||||||
m_World->ComponentFactory.Register<Components::PowerUpBrick>();
|
m_World->ComponentFactory.Register<Components::PowerUpBrick>();
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
float m_XMovementMultiplier = 2.f;
|
float m_XMovementMultiplier = 2.f;
|
||||||
float m_EdgeX = 3.2f;
|
float m_EdgeX = 3.4f; //Actually 3.2, but anyways.
|
||||||
float m_EdgeY = 5.2f;
|
float m_EdgeY = 5.2f;
|
||||||
int m_MultiBalls = 0;
|
int m_MultiBalls = 0;
|
||||||
int m_Lives = 3;
|
int m_Lives = 3;
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
//
|
||||||
|
// Created by Adniklastrator on 2015-10-15.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef DAYDREAM_CTRAVELS_H
|
||||||
|
#define DAYDREAM_CTRAVELS_H
|
||||||
|
|
||||||
|
#include "Core/Component.h"
|
||||||
|
|
||||||
|
namespace dd
|
||||||
|
{
|
||||||
|
|
||||||
|
namespace Components
|
||||||
|
{
|
||||||
|
|
||||||
|
struct Travels : Component
|
||||||
|
{
|
||||||
|
//This indicates that the object moves upon moving to the next stage. Place this on an object that is to move.
|
||||||
|
//The camera does not move. Things that are to follow the camera should not have this component.
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //DAYDREAM_CTRAVELS_H
|
||||||
@@ -25,6 +25,7 @@
|
|||||||
#include "Game/CBackground.h"
|
#include "Game/CBackground.h"
|
||||||
#include "Game/CProjectile.h"
|
#include "Game/CProjectile.h"
|
||||||
#include "Game/CPowerUp.h"
|
#include "Game/CPowerUp.h"
|
||||||
|
#include "Game/CTravels.h"
|
||||||
|
|
||||||
#include "Game/BrickComponents.h"
|
#include "Game/BrickComponents.h"
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
#include "Game/EPause.h"
|
#include "Game/EPause.h"
|
||||||
#include "Game/EArrivedAtNewStage.h"
|
#include "Game/EArrivedAtNewStage.h"
|
||||||
#include "Game/EStageCleared.h"
|
#include "Game/EStageCleared.h"
|
||||||
|
#include "Game/CTravels.h"
|
||||||
|
|
||||||
|
|
||||||
namespace dd
|
namespace dd
|
||||||
|
|||||||
@@ -47,7 +47,6 @@ void dd::Systems::BallSystem::Initialize()
|
|||||||
physics->Category = CollisionLayer::Type::Ball;
|
physics->Category = CollisionLayer::Type::Ball;
|
||||||
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Type::Pad | CollisionLayer::Type::Brick | CollisionLayer::Type::Wall | CollisionLayer::LifeBuoy);
|
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Type::Pad | CollisionLayer::Type::Brick | CollisionLayer::Type::Wall | CollisionLayer::LifeBuoy);
|
||||||
physics->Calculate = true;
|
physics->Calculate = true;
|
||||||
transform->Sticky = true;
|
|
||||||
|
|
||||||
m_World->CommitEntity(ent);
|
m_World->CommitEntity(ent);
|
||||||
|
|
||||||
@@ -168,7 +167,7 @@ void dd::Systems::BallSystem::UpdateEntity(double dt, EntityID entity, EntityID
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} //Removing this made the wall collisions work again
|
} //Removing this made the wall collisions work again
|
||||||
/*else if (transformBall->Position.x > EdgeX()) {
|
else if (transformBall->Position.x > EdgeX()) {
|
||||||
if (transformBall->Velocity.x > 0) {
|
if (transformBall->Velocity.x > 0) {
|
||||||
glm::vec2 reflectedVelocity = glm::reflect(glm::vec2(transformBall->Velocity.x, transformBall->Velocity.y), glm::vec2(1, 0));
|
glm::vec2 reflectedVelocity = glm::reflect(glm::vec2(transformBall->Velocity.x, transformBall->Velocity.y), glm::vec2(1, 0));
|
||||||
transformBall->Velocity = glm::vec3(reflectedVelocity, 0.f);
|
transformBall->Velocity = glm::vec3(reflectedVelocity, 0.f);
|
||||||
@@ -178,7 +177,7 @@ void dd::Systems::BallSystem::UpdateEntity(double dt, EntityID entity, EntityID
|
|||||||
glm::vec2 reflectedVelocity = glm::reflect(glm::vec2(transformBall->Velocity.x, transformBall->Velocity.y), glm::vec2(-1, 0));
|
glm::vec2 reflectedVelocity = glm::reflect(glm::vec2(transformBall->Velocity.x, transformBall->Velocity.y), glm::vec2(-1, 0));
|
||||||
transformBall->Velocity = glm::vec3(reflectedVelocity, 0.f);
|
transformBall->Velocity = glm::vec3(reflectedVelocity, 0.f);
|
||||||
}
|
}
|
||||||
} else if (transformBall->Position.y > EdgeY()) {
|
} /*else if (transformBall->Position.y > EdgeY()) {
|
||||||
if (transformBall->Velocity.y > 0) {
|
if (transformBall->Velocity.y > 0) {
|
||||||
glm::vec2 reflectedVelocity = glm::reflect(glm::vec2(transformBall->Velocity.x, transformBall->Velocity.y), glm::vec2(0, 1));
|
glm::vec2 reflectedVelocity = glm::reflect(glm::vec2(transformBall->Velocity.x, transformBall->Velocity.y), glm::vec2(0, 1));
|
||||||
transformBall->Velocity = glm::vec3(reflectedVelocity, 0.f);
|
transformBall->Velocity = glm::vec3(reflectedVelocity, 0.f);
|
||||||
@@ -419,7 +418,6 @@ void dd::Systems::BallSystem::CreateLife(int number)
|
|||||||
std::shared_ptr<Components::Transform> transform = m_World->AddComponent<Components::Transform>(life);
|
std::shared_ptr<Components::Transform> transform = m_World->AddComponent<Components::Transform>(life);
|
||||||
transform->Position = glm::vec3(-1.5f + number * 0.15f, -2.f, -5.f);
|
transform->Position = glm::vec3(-1.5f + number * 0.15f, -2.f, -5.f);
|
||||||
transform->Scale = glm::vec3(0.1f, 0.1f, 0.1f);
|
transform->Scale = glm::vec3(0.1f, 0.1f, 0.1f);
|
||||||
transform->Sticky = true;
|
|
||||||
|
|
||||||
std::shared_ptr<Components::Life> lifeNr = m_World->AddComponent<Components::Life>(life);
|
std::shared_ptr<Components::Life> lifeNr = m_World->AddComponent<Components::Life>(life);
|
||||||
lifeNr->Number = number;
|
lifeNr->Number = number;
|
||||||
|
|||||||
+164
-167
@@ -11,22 +11,21 @@ void dd::Systems::LevelSystem::Initialize()
|
|||||||
{
|
{
|
||||||
std::random_device rd;
|
std::random_device rd;
|
||||||
m_RandomGenerator = std::mt19937(rd());
|
m_RandomGenerator = std::mt19937(rd());
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EContact, &LevelSystem::OnContact);
|
EVENT_SUBSCRIBE_MEMBER(m_EContact, &LevelSystem::OnContact);
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EScoreEvent, &LevelSystem::OnScoreEvent);
|
EVENT_SUBSCRIBE_MEMBER(m_EScoreEvent, &LevelSystem::OnScoreEvent);
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EMultiBall, &LevelSystem::OnMultiBall);
|
EVENT_SUBSCRIBE_MEMBER(m_EMultiBall, &LevelSystem::OnMultiBall);
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_ECreatePowerUp, &LevelSystem::OnCreatePowerUp);
|
EVENT_SUBSCRIBE_MEMBER(m_ECreatePowerUp, &LevelSystem::OnCreatePowerUp);
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EMultiBallLost, &LevelSystem::OnMultiBallLost);
|
EVENT_SUBSCRIBE_MEMBER(m_EMultiBallLost, &LevelSystem::OnMultiBallLost);
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EPowerUpTaken, &LevelSystem::OnPowerUpTaken);
|
EVENT_SUBSCRIBE_MEMBER(m_EPowerUpTaken, &LevelSystem::OnPowerUpTaken);
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EStageCleared, &LevelSystem::OnStageCleared);
|
EVENT_SUBSCRIBE_MEMBER(m_EStageCleared, &LevelSystem::OnStageCleared);
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EPause, &LevelSystem::OnPause);
|
EVENT_SUBSCRIBE_MEMBER(m_EPause, &LevelSystem::OnPause);
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EHitPad, &LevelSystem::OnHitPad);
|
EVENT_SUBSCRIBE_MEMBER(m_EHitPad, &LevelSystem::OnHitPad);
|
||||||
|
|
||||||
//PointLightTest
|
//PointLightTest
|
||||||
{
|
{
|
||||||
auto t_Light = m_World->CreateEntity();
|
auto t_Light = m_World->CreateEntity();
|
||||||
auto transform = m_World->AddComponent<Components::Transform>(t_Light);
|
auto transform = m_World->AddComponent<Components::Transform>(t_Light);
|
||||||
transform->Position = glm::vec3(-3.f, 6.f, -5.f);
|
transform->Position = glm::vec3(-3.f, 6.f, -5.f);
|
||||||
transform->Sticky = true;
|
|
||||||
auto pl = m_World->AddComponent<Components::PointLight>(t_Light);
|
auto pl = m_World->AddComponent<Components::PointLight>(t_Light);
|
||||||
pl->Radius = 20.f;
|
pl->Radius = 20.f;
|
||||||
pl->Diffuse = glm::vec3(0.8f, 0.7f, 0.05f);
|
pl->Diffuse = glm::vec3(0.8f, 0.7f, 0.05f);
|
||||||
@@ -34,187 +33,184 @@ void dd::Systems::LevelSystem::Initialize()
|
|||||||
model->ModelFile = "Models/Core/UnitSphere.obj";
|
model->ModelFile = "Models/Core/UnitSphere.obj";
|
||||||
m_World->CommitEntity(t_Light);
|
m_World->CommitEntity(t_Light);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
auto t_Light = m_World->CreateEntity();
|
auto t_Light = m_World->CreateEntity();
|
||||||
auto transform = m_World->AddComponent<Components::Transform>(t_Light);
|
auto transform = m_World->AddComponent<Components::Transform>(t_Light);
|
||||||
transform->Position = glm::vec3(3.f, -5.f, -5.f);
|
transform->Position = glm::vec3(3.f, -5.f, -5.f);
|
||||||
transform->Sticky = true;
|
auto pl = m_World->AddComponent<Components::PointLight>(t_Light);
|
||||||
auto pl = m_World->AddComponent<Components::PointLight>(t_Light);
|
pl->Radius = 15.f;
|
||||||
pl->Radius = 15.f;
|
pl->Diffuse = glm::vec3(0.1f, 0.5f, 0.8f);
|
||||||
pl->Diffuse = glm::vec3(0.1f, 0.5f, 0.8f);
|
auto model = m_World->AddComponent<Components::Model>(t_Light);
|
||||||
auto model = m_World->AddComponent<Components::Model>(t_Light);
|
model->ModelFile = "Models/Core/UnitSphere.obj";
|
||||||
model->ModelFile = "Models/Core/UnitSphere.obj";
|
m_World->CommitEntity(t_Light);
|
||||||
m_World->CommitEntity(t_Light);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
//Halfpipe background test model.
|
//Halfpipe background test model.
|
||||||
{
|
{
|
||||||
auto t_halfPipe = m_World->CreateEntity();
|
auto t_halfPipe = m_World->CreateEntity();
|
||||||
auto transform = m_World->AddComponent<Components::Transform>(t_halfPipe);
|
auto transform = m_World->AddComponent<Components::Transform>(t_halfPipe);
|
||||||
transform->Position = glm::vec3(0.f, 0.f, -15.f);
|
auto background = m_World->AddComponent<Components::Background>(t_halfPipe);
|
||||||
transform->Scale = glm::vec3(6.f, 6.f, 10.f);
|
transform->Position = glm::vec3(0.f, 0.f, -15.f);
|
||||||
transform->Sticky = false;
|
transform->Scale = glm::vec3(6.f, 6.f, 10.f);
|
||||||
auto model = m_World->AddComponent<Components::Model>(t_halfPipe);
|
auto travels = m_World->AddComponent<Components::Travels>(t_halfPipe);
|
||||||
model->ModelFile = "Models/Test/halfpipe/Halfpipe.obj";
|
auto model = m_World->AddComponent<Components::Model>(t_halfPipe);
|
||||||
model->Color = glm::vec4(0.8f, 0.8f, 0.8f, 0.3f);
|
model->ModelFile = "Models/Test/halfpipe/Halfpipe.obj";
|
||||||
m_World->CommitEntity(t_halfPipe);
|
model->Color = glm::vec4(0.8f, 0.8f, 0.8f, 0.3f);
|
||||||
}
|
m_World->CommitEntity(t_halfPipe);
|
||||||
{
|
|
||||||
auto t_halfPipe = m_World->CreateEntity();
|
|
||||||
auto transform = m_World->AddComponent<Components::Transform>(t_halfPipe);
|
|
||||||
transform->Position = glm::vec3(0.f, 34.6f, -15.f);
|
|
||||||
transform->Scale = glm::vec3(6.f, 6.f, 10.f);
|
|
||||||
transform->Sticky = false;
|
|
||||||
auto model = m_World->AddComponent<Components::Model>(t_halfPipe);
|
|
||||||
model->ModelFile = "Models/Test/halfpipe/Halfpipe.obj";
|
|
||||||
model->Color = glm::vec4(0.8f, 0.8f, 0.8f, 0.3f);
|
|
||||||
m_World->CommitEntity(t_halfPipe);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Background
|
auto t_halfPipe2 = m_World->CloneEntity(t_halfPipe);
|
||||||
|
auto transform2 = m_World->GetComponent<Components::Transform>(t_halfPipe);
|
||||||
|
transform2->Position = glm::vec3(0.f, 34.6f, -15.f);
|
||||||
|
}
|
||||||
|
|
||||||
{
|
//Background
|
||||||
auto background = m_World->CreateEntity();
|
|
||||||
auto transform = m_World->AddComponent<Components::Transform>(background);
|
|
||||||
transform->Position = glm::vec3(0.f, 0.f, -30.f);
|
|
||||||
transform->Scale = glm::vec3(2681.f / 50.f, 1080.f / 50.f, 1.f);
|
|
||||||
auto sprite = m_World->AddComponent<Components::Sprite>(background);
|
|
||||||
sprite->SpriteFile = "Textures/Background.png";
|
|
||||||
m_World->CommitEntity(background);
|
|
||||||
}
|
|
||||||
|
|
||||||
// auto particleEmitter= m_World->AddComponent<Components::Emitter>(Pe);
|
{
|
||||||
//Water test
|
auto background = m_World->CreateEntity();
|
||||||
{
|
auto transform = m_World->AddComponent<Components::Transform>(background);
|
||||||
auto t_waterBody = m_World->CreateEntity();
|
auto travels = m_World->AddComponent<Components::Travels>(background);
|
||||||
auto transform = m_World->AddComponent<Components::Transform>(t_waterBody);
|
auto backgroundComponent = m_World->AddComponent<Components::Background>(background);
|
||||||
transform->Position = glm::vec3(0.f, -3.5f, -10.f);
|
transform->Position = glm::vec3(0.f, 0.f, -30.f);
|
||||||
transform->Scale = glm::vec3(7.0f, 1.5f, 1.f);
|
transform->Scale = glm::vec3(2681.f / 50.f, 1080.f / 50.f, 1.f);
|
||||||
transform->Sticky = true;
|
auto sprite = m_World->AddComponent<Components::Sprite>(background);
|
||||||
auto water = m_World->AddComponent<Components::WaterVolume>(t_waterBody);
|
sprite->SpriteFile = "Textures/Background.png";
|
||||||
auto body = m_World->AddComponent<Components::RectangleShape>(t_waterBody);
|
m_World->CommitEntity(background);
|
||||||
m_World->CommitEntity(t_waterBody);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
//ParticleTest
|
// auto particleEmitter= m_World->AddComponent<Components::Emitter>(Pe);
|
||||||
|
//Water test
|
||||||
|
{
|
||||||
|
auto t_waterBody = m_World->CreateEntity();
|
||||||
|
auto transform = m_World->AddComponent<Components::Transform>(t_waterBody);
|
||||||
|
transform->Position = glm::vec3(0.f, -3.5f, -10.f);
|
||||||
|
transform->Scale = glm::vec3(7.0f, 1.5f, 1.f);
|
||||||
|
auto water = m_World->AddComponent<Components::WaterVolume>(t_waterBody);
|
||||||
|
auto body = m_World->AddComponent<Components::RectangleShape>(t_waterBody);
|
||||||
|
m_World->CommitEntity(t_waterBody);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ParticleTest
|
||||||
|
|
||||||
|
|
||||||
/*{
|
/*{
|
||||||
auto Pe = m_World->CreateEntity();
|
auto Pe = m_World->CreateEntity();
|
||||||
auto transform = m_World->AddComponent<Components::Transform>(Pe);
|
auto transform = m_World->AddComponent<Components::Transform>(Pe);
|
||||||
auto particleEmitter= m_World->AddComponent<Components::ParticleEmitter>(Pe);
|
auto particleEmitter= m_World->AddComponent<Components::ParticleEmitter>(Pe);
|
||||||
auto emitteSprite = m_World->AddComponent<Components::Sprite>(Pe);
|
auto emitteSprite = m_World->AddComponent<Components::Sprite>(Pe);
|
||||||
|
|
||||||
transform->Position = glm::vec3(0.f, 0.f, -10.f);
|
transform->Position = glm::vec3(0.f, 0.f, -10.f);
|
||||||
emitteSprite->SpriteFile = "Textures/Test/Brick_Normal.png";
|
emitteSprite->SpriteFile = "Textures/Test/Brick_Normal.png";
|
||||||
particleEmitter->GravityScale = 0.0f;
|
particleEmitter->GravityScale = 0.0f;
|
||||||
particleEmitter->SpawnRate = 1.f;
|
particleEmitter->SpawnRate = 1.f;
|
||||||
particleEmitter->NumberOfTicks = 2;
|
particleEmitter->NumberOfTicks = 2;
|
||||||
particleEmitter->Speed = 1.f;
|
particleEmitter->Speed = 1.f;
|
||||||
particleEmitter->ParticlesPerTick = 5;
|
particleEmitter->ParticlesPerTick = 5;
|
||||||
particleEmitter->Spread = glm::pi<float>()*2;
|
particleEmitter->Spread = glm::pi<float>()*2;
|
||||||
particleEmitter->EmittingAngle = glm::pi<float>();
|
particleEmitter->EmittingAngle = glm::pi<float>();
|
||||||
particleEmitter->LifeTime = 50;
|
particleEmitter->LifeTime = 50;
|
||||||
|
|
||||||
{
|
{
|
||||||
auto Pt = m_World->CreateEntity(Pe);
|
auto Pt = m_World->CreateEntity(Pe);
|
||||||
auto PtTransform = m_World->AddComponent<Components::Transform>(Pt);
|
auto PtTransform = m_World->AddComponent<Components::Transform>(Pt);
|
||||||
auto PtSprite = m_World->AddComponent<Components::Sprite>(Pt);
|
auto PtSprite = m_World->AddComponent<Components::Sprite>(Pt);
|
||||||
auto PtParticle = m_World->AddComponent<Components::Particle>(Pt);
|
auto PtParticle = m_World->AddComponent<Components::Particle>(Pt);
|
||||||
auto PtTemplate = m_World->AddComponent<Components::Template>(Pt);
|
auto PtTemplate = m_World->AddComponent<Components::Template>(Pt);
|
||||||
|
|
||||||
//PtTransform->Velocity = glm::vec3(1.0f, 0.f, 0.f);
|
//PtTransform->Velocity = glm::vec3(1.0f, 0.f, 0.f);
|
||||||
PtTransform->Position = transform->Position;
|
PtTransform->Position = transform->Position;
|
||||||
PtSprite->SpriteFile = "Textures/Background.png";
|
PtSprite->SpriteFile = "Textures/Background.png";
|
||||||
PtParticle->LifeTime = 3.f;
|
PtParticle->LifeTime = 3.f;
|
||||||
PtParticle->Flags = static_cast<ParticleFlags::Type>(ParticleFlags::Type::Powder | ParticleFlags::Type::ParticleContactFilter | ParticleFlags::Type::FixtureContactFilter);
|
PtParticle->Flags = static_cast<ParticleFlags::Type>(ParticleFlags::Type::Powder | ParticleFlags::Type::ParticleContactFilter | ParticleFlags::Type::FixtureContactFilter);
|
||||||
}
|
}
|
||||||
m_World->CommitEntity(Pe);
|
m_World->CommitEntity(Pe);
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
//TODO: Why does the ball not collide with these bricks?
|
//TODO: Why does the ball not collide with these bricks?
|
||||||
//BottomBox
|
//BottomBox
|
||||||
{
|
{
|
||||||
auto BottomWall = m_World->CreateEntity();
|
auto BottomWall = m_World->CreateEntity();
|
||||||
auto transform = m_World->AddComponent<Components::Transform>(BottomWall);
|
auto transform = m_World->AddComponent<Components::Transform>(BottomWall);
|
||||||
transform->Position = glm::vec3(0.f, -6.f, -10.f);
|
auto wall = m_World->AddComponent<Components::Wall>(BottomWall);
|
||||||
transform->Scale = glm::vec3(20.f, 0.5f, 1.f);
|
transform->Position = glm::vec3(0.f, -6.f, -10.f);
|
||||||
//std::shared_ptr<Components::Sprite> sprite = m_World->AddComponent<Components::Sprite>(BottomWall);
|
transform->Scale = glm::vec3(20.f, 0.5f, 1.f);
|
||||||
//sprite->SpriteFile = "Textures/Core/ErrorTexture.png";
|
//std::shared_ptr<Components::Sprite> sprite = m_World->AddComponent<Components::Sprite>(BottomWall);
|
||||||
std::shared_ptr<Components::RectangleShape> rectangleShape = m_World->AddComponent<Components::RectangleShape>(BottomWall);
|
//sprite->SpriteFile = "Textures/Core/ErrorTexture.png";
|
||||||
rectangleShape->Dimensions = glm::vec2(20.f, 0.5f);
|
std::shared_ptr<Components::RectangleShape> rectangleShape = m_World->AddComponent<Components::RectangleShape>(BottomWall);
|
||||||
std::shared_ptr<Components::Physics> physics = m_World->AddComponent<Components::Physics>(BottomWall);
|
rectangleShape->Dimensions = glm::vec2(20.f, 0.5f);
|
||||||
physics->CollisionType = CollisionType::Type::Static;
|
std::shared_ptr<Components::Physics> physics = m_World->AddComponent<Components::Physics>(BottomWall);
|
||||||
physics->Category = CollisionLayer::Wall;
|
physics->CollisionType = CollisionType::Type::Static;
|
||||||
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::LifeBuoy);
|
physics->Category = CollisionLayer::Wall;
|
||||||
transform->Sticky = true;
|
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::LifeBuoy);
|
||||||
m_World->CommitEntity(BottomWall);
|
m_World->CommitEntity(BottomWall);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
auto topWall = m_World->CreateEntity();
|
auto topWall = m_World->CreateEntity();
|
||||||
std::shared_ptr<Components::Transform> transform = m_World->AddComponent<Components::Transform>(topWall);
|
std::shared_ptr<Components::Transform> transform = m_World->AddComponent<Components::Transform>(topWall);
|
||||||
transform->Position = glm::vec3(0.f, 6.f, -10.f);
|
transform->Position = glm::vec3(0.f, 6.f, -10.f);
|
||||||
transform->Scale = glm::vec3(20.f, 0.5f, 1.f);
|
transform->Scale = glm::vec3(20.f, 0.5f, 1.f);
|
||||||
|
|
||||||
//std::shared_ptr<Components::Sprite> sprite = m_World->AddComponent<Components::Sprite>(topWall);
|
auto wall = m_World->AddComponent<Components::Wall>(topWall);
|
||||||
//sprite->SpriteFile = "Textures/Core/ErrorTexture.png";
|
|
||||||
|
|
||||||
std::shared_ptr<Components::RectangleShape> rectangleShape = m_World->AddComponent<Components::RectangleShape>(topWall);
|
//std::shared_ptr<Components::Sprite> sprite = m_World->AddComponent<Components::Sprite>(topWall);
|
||||||
rectangleShape->Dimensions = glm::vec2(20.f, 0.5f);
|
//sprite->SpriteFile = "Textures/Core/ErrorTexture.png";
|
||||||
|
|
||||||
std::shared_ptr<Components::Physics> physics = m_World->AddComponent<Components::Physics>(topWall);
|
std::shared_ptr<Components::RectangleShape> rectangleShape = m_World->AddComponent<Components::RectangleShape>(topWall);
|
||||||
physics->CollisionType = CollisionType::Type::Static;
|
rectangleShape->Dimensions = glm::vec2(20.f, 0.5f);
|
||||||
physics->Category = CollisionLayer::Wall;
|
|
||||||
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Ball | CollisionLayer::Brick);
|
|
||||||
transform->Sticky = true;
|
|
||||||
|
|
||||||
m_World->CommitEntity(topWall);
|
std::shared_ptr<Components::Physics> physics = m_World->AddComponent<Components::Physics>(topWall);
|
||||||
}
|
physics->CollisionType = CollisionType::Type::Static;
|
||||||
|
physics->Category = CollisionLayer::Wall;
|
||||||
|
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Ball | CollisionLayer::Brick);
|
||||||
|
|
||||||
{
|
m_World->CommitEntity(topWall);
|
||||||
auto leftWall = m_World->CreateEntity();
|
}
|
||||||
std::shared_ptr<Components::Transform> transform = m_World->AddComponent<Components::Transform>(
|
|
||||||
leftWall);
|
|
||||||
transform->Position = glm::vec3(-4.f, 1.f, -10.f);
|
|
||||||
transform->Scale = glm::vec3(0.5f, 20.f, 1.f);
|
|
||||||
|
|
||||||
//std::shared_ptr<Components::Sprite> sprite = m_World->AddComponent<Components::Sprite>(leftWall);
|
{
|
||||||
//sprite->SpriteFile = "Textures/Core/ErrorTexture.png";
|
auto leftWall = m_World->CreateEntity();
|
||||||
|
std::shared_ptr<Components::Transform> transform = m_World->AddComponent<Components::Transform>(
|
||||||
|
leftWall);
|
||||||
|
transform->Position = glm::vec3(-4.f, 1.f, -10.f);
|
||||||
|
transform->Scale = glm::vec3(0.5f, 20.f, 1.f);
|
||||||
|
|
||||||
std::shared_ptr<Components::RectangleShape> rectangleShape = m_World->AddComponent<Components::RectangleShape>(leftWall);
|
auto wall = m_World->AddComponent<Components::Wall>(leftWall);
|
||||||
rectangleShape->Dimensions = glm::vec2(0.5f, 20.f);
|
|
||||||
|
|
||||||
std::shared_ptr<Components::Physics> physics = m_World->AddComponent<Components::Physics>(leftWall);
|
//std::shared_ptr<Components::Sprite> sprite = m_World->AddComponent<Components::Sprite>(leftWall);
|
||||||
physics->CollisionType = CollisionType::Type::Static;
|
//sprite->SpriteFile = "Textures/Core/ErrorTexture.png";
|
||||||
physics->Category = CollisionLayer::Wall;
|
|
||||||
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Ball | CollisionLayer::Brick);
|
|
||||||
transform->Sticky = true;
|
|
||||||
|
|
||||||
m_World->CommitEntity(leftWall);
|
std::shared_ptr<Components::RectangleShape> rectangleShape = m_World->AddComponent<Components::RectangleShape>(leftWall);
|
||||||
}
|
rectangleShape->Dimensions = glm::vec2(0.5f, 20.f);
|
||||||
|
|
||||||
{
|
std::shared_ptr<Components::Physics> physics = m_World->AddComponent<Components::Physics>(leftWall);
|
||||||
auto rightWall = m_World->CreateEntity();
|
physics->CollisionType = CollisionType::Type::Static;
|
||||||
std::shared_ptr<Components::Transform> transform = m_World->AddComponent<Components::Transform>(
|
physics->Category = CollisionLayer::Wall;
|
||||||
rightWall);
|
physics->Mask = static_cast<CollisionLayer::Type>(/*CollisionLayer::Ball |*/ CollisionLayer::Brick);
|
||||||
transform->Position = glm::vec3(4.f, 1.f, -10.f);
|
|
||||||
transform->Scale = glm::vec3(0.5f, 20.f, 1.f);
|
|
||||||
|
|
||||||
//std::shared_ptr<Components::Sprite> sprite = m_World->AddComponent<Components::Sprite>(rightWall);
|
m_World->CommitEntity(leftWall);
|
||||||
//sprite->SpriteFile = "Textures/Core/ErrorTexture.png";
|
}
|
||||||
|
|
||||||
std::shared_ptr<Components::RectangleShape> rectangleShape = m_World->AddComponent<Components::RectangleShape>(rightWall);
|
{
|
||||||
rectangleShape->Dimensions = glm::vec2(0.5f, 20.f);
|
auto rightWall = m_World->CreateEntity();
|
||||||
|
std::shared_ptr<Components::Transform> transform = m_World->AddComponent<Components::Transform>(
|
||||||
|
rightWall);
|
||||||
|
transform->Position = glm::vec3(4.f, 1.f, -10.f);
|
||||||
|
transform->Scale = glm::vec3(0.5f, 20.f, 1.f);
|
||||||
|
|
||||||
std::shared_ptr<Components::Physics> physics = m_World->AddComponent<Components::Physics>(rightWall);
|
auto wall = m_World->AddComponent<Components::Wall>(rightWall);
|
||||||
physics->CollisionType = CollisionType::Type::Static;
|
|
||||||
physics->Category = CollisionLayer::Wall;
|
|
||||||
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Ball | CollisionLayer::Brick);
|
|
||||||
transform->Sticky = true;
|
|
||||||
|
|
||||||
m_World->CommitEntity(rightWall);
|
//std::shared_ptr<Components::Sprite> sprite = m_World->AddComponent<Components::Sprite>(rightWall);
|
||||||
}
|
//sprite->SpriteFile = "Textures/Core/ErrorTexture.png";
|
||||||
|
|
||||||
|
std::shared_ptr<Components::RectangleShape> rectangleShape = m_World->AddComponent<Components::RectangleShape>(rightWall);
|
||||||
|
rectangleShape->Dimensions = glm::vec2(0.5f, 20.f);
|
||||||
|
|
||||||
|
std::shared_ptr<Components::Physics> physics = m_World->AddComponent<Components::Physics>(rightWall);
|
||||||
|
physics->CollisionType = CollisionType::Type::Static;
|
||||||
|
physics->Category = CollisionLayer::Wall;
|
||||||
|
physics->Mask = static_cast<CollisionLayer::Type>(/*CollisionLayer::Ball |*/ CollisionLayer::Brick);
|
||||||
|
|
||||||
|
m_World->CommitEntity(rightWall);
|
||||||
|
}
|
||||||
|
|
||||||
m_BrickTemplate = m_World->CreateEntity();
|
m_BrickTemplate = m_World->CreateEntity();
|
||||||
std::shared_ptr<Components::Transform> transform = m_World->AddComponent<Components::Transform>(m_BrickTemplate);
|
std::shared_ptr<Components::Transform> transform = m_World->AddComponent<Components::Transform>(m_BrickTemplate);
|
||||||
@@ -224,11 +220,13 @@ void dd::Systems::LevelSystem::Initialize()
|
|||||||
cRec->Dimensions = glm::vec2(0.9f, 0.35f);
|
cRec->Dimensions = glm::vec2(0.9f, 0.35f);
|
||||||
std::shared_ptr<Components::Physics> cPhys = m_World->AddComponent<Components::Physics>(m_BrickTemplate);
|
std::shared_ptr<Components::Physics> cPhys = m_World->AddComponent<Components::Physics>(m_BrickTemplate);
|
||||||
std::shared_ptr<Components::Template> cTemplate = m_World->AddComponent<Components::Template>(m_BrickTemplate);
|
std::shared_ptr<Components::Template> cTemplate = m_World->AddComponent<Components::Template>(m_BrickTemplate);
|
||||||
|
|
||||||
|
auto travels = m_World->AddComponent<Components::Travels>(m_BrickTemplate);
|
||||||
|
|
||||||
cPhys->CollisionType = CollisionType::Type::Static;
|
cPhys->CollisionType = CollisionType::Type::Static;
|
||||||
cPhys->GravityScale = 0.f;
|
cPhys->GravityScale = 0.f;
|
||||||
cPhys->Category = CollisionLayer::Type::Brick;
|
cPhys->Category = CollisionLayer::Type::Brick;
|
||||||
cPhys->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Type::Ball | CollisionLayer::Type::Projectile | CollisionLayer::Type::Wall | CollisionLayer::LifeBuoy);
|
cPhys->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Type::Ball | CollisionLayer::Type::Projectile | CollisionLayer::Type::Wall | CollisionLayer::LifeBuoy);
|
||||||
transform->Sticky = false;
|
|
||||||
|
|
||||||
model->ModelFile = "Models/Brick/WhiteBrick.obj";
|
model->ModelFile = "Models/Brick/WhiteBrick.obj";
|
||||||
transform->Position = glm::vec3(50, 50, -10);
|
transform->Position = glm::vec3(50, 50, -10);
|
||||||
@@ -633,7 +631,6 @@ bool dd::Systems::LevelSystem::OnCreatePowerUp(const dd::Events::CreatePowerUp &
|
|||||||
cPhys->CollisionType = CollisionType::Type::Dynamic;
|
cPhys->CollisionType = CollisionType::Type::Dynamic;
|
||||||
cPhys->Category = CollisionLayer::Type::PowerUp;
|
cPhys->Category = CollisionLayer::Type::PowerUp;
|
||||||
cPhys->Mask = CollisionLayer::Type::Pad;
|
cPhys->Mask = CollisionLayer::Type::Pad;
|
||||||
transform->Sticky = false;
|
|
||||||
|
|
||||||
std::shared_ptr<Components::PowerUp> cPow = m_World->AddComponent<Components::PowerUp>(powerUp);
|
std::shared_ptr<Components::PowerUp> cPow = m_World->AddComponent<Components::PowerUp>(powerUp);
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ void dd::Systems::LifebuoySystem::Initialize()
|
|||||||
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Ball | CollisionLayer::Brick | CollisionLayer::LifeBuoy | CollisionLayer::Pad | CollisionLayer::Water);
|
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Ball | CollisionLayer::Brick | CollisionLayer::LifeBuoy | CollisionLayer::Pad | CollisionLayer::Water);
|
||||||
physics->Density = 1.0f;
|
physics->Density = 1.0f;
|
||||||
physics->GravityScale = 1;
|
physics->GravityScale = 1;
|
||||||
ctransform->Sticky = true;
|
|
||||||
auto cModel = m_World->AddComponent<Components::Model>(ent);
|
auto cModel = m_World->AddComponent<Components::Model>(ent);
|
||||||
cModel->ModelFile = "Models/Lifebuoy/Lifebuoy1.obj";
|
cModel->ModelFile = "Models/Lifebuoy/Lifebuoy1.obj";
|
||||||
auto lifebuoy = m_World->AddComponent<Components::Lifebuoy>(ent);
|
auto lifebuoy = m_World->AddComponent<Components::Lifebuoy>(ent);
|
||||||
|
|||||||
@@ -49,7 +49,6 @@ void dd::Systems::PadSystem::Initialize()
|
|||||||
physics->Category = CollisionLayer::Type::Pad;
|
physics->Category = CollisionLayer::Type::Pad;
|
||||||
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Ball | CollisionLayer::PowerUp | CollisionLayer::LifeBuoy);
|
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Ball | CollisionLayer::PowerUp | CollisionLayer::LifeBuoy);
|
||||||
physics->Calculate = true;
|
physics->Calculate = true;
|
||||||
ctransform->Sticky = true;
|
|
||||||
auto cModel = m_World->AddComponent<Components::Model>(ent);
|
auto cModel = m_World->AddComponent<Components::Model>(ent);
|
||||||
cModel->ModelFile = "Models/Ship/Ship.obj";
|
cModel->ModelFile = "Models/Ship/Ship.obj";
|
||||||
|
|
||||||
@@ -396,7 +395,6 @@ bool dd::Systems::PadSystem::OnRaiseWater(const dd::Events::RaiseWater &event)
|
|||||||
auto transform = m_World->AddComponent<Components::Transform>(t_waterBody);
|
auto transform = m_World->AddComponent<Components::Transform>(t_waterBody);
|
||||||
transform->Position = glm::vec3(0.f, -3.5f, -10.f);
|
transform->Position = glm::vec3(0.f, -3.5f, -10.f);
|
||||||
transform->Scale = glm::vec3(7.0f, event.Amount * 1.6f, 1.f);
|
transform->Scale = glm::vec3(7.0f, event.Amount * 1.6f, 1.f);
|
||||||
transform->Sticky = true;
|
|
||||||
auto water = m_World->AddComponent<Components::WaterVolume>(t_waterBody);
|
auto water = m_World->AddComponent<Components::WaterVolume>(t_waterBody);
|
||||||
auto body = m_World->AddComponent<Components::RectangleShape>(t_waterBody);
|
auto body = m_World->AddComponent<Components::RectangleShape>(t_waterBody);
|
||||||
m_World->CommitEntity(t_waterBody);
|
m_World->CommitEntity(t_waterBody);
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ void dd::Systems::ProjectileSystem::Initialize()
|
|||||||
physics->Category = CollisionLayer::Type::Projectile;
|
physics->Category = CollisionLayer::Type::Projectile;
|
||||||
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Type::Pad | CollisionLayer::Type::Brick | CollisionLayer::Type::Wall);
|
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Type::Pad | CollisionLayer::Type::Brick | CollisionLayer::Type::Wall);
|
||||||
physics->Calculate = true;
|
physics->Calculate = true;
|
||||||
ctransform->Sticky = true;
|
|
||||||
ctransform->Position = glm::vec3(0.f, 0.f, -10.f);
|
ctransform->Position = glm::vec3(0.f, 0.f, -10.f);
|
||||||
ctransform->Scale = glm::vec3(0.1f, 0.1f, 0.1f);
|
ctransform->Scale = glm::vec3(0.1f, 0.1f, 0.1f);
|
||||||
auto cModel = m_World->AddComponent<Components::Model>(ent);
|
auto cModel = m_World->AddComponent<Components::Model>(ent);
|
||||||
|
|||||||
@@ -31,15 +31,13 @@ void dd::Systems::TravellingSystem::Update(double dt)
|
|||||||
void dd::Systems::TravellingSystem::UpdateEntity(double dt, EntityID entity, EntityID parent)
|
void dd::Systems::TravellingSystem::UpdateEntity(double dt, EntityID entity, EntityID parent)
|
||||||
{
|
{
|
||||||
if (m_Travelling) {
|
if (m_Travelling) {
|
||||||
auto transform = m_World->GetComponent<Components::Transform>(entity);
|
auto travels = m_World->GetComponent<Components::Travels>(entity);
|
||||||
if (transform != nullptr) {
|
if (travels != nullptr) {
|
||||||
if (!transform->Sticky) {
|
auto transform = m_World->GetComponent<Components::Transform>(entity);
|
||||||
|
if (transform != nullptr) {
|
||||||
transform->Position.y -= 6.0f * dt;
|
transform->Position.y -= 6.0f * dt;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
transform->Position.y -= 6.0f * dt;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user