CTravels replaces Sticky = true. Put "Travels" component on anything that should be moved down during travel sequences.

This commit is contained in:
PlatinumSkink
2015-10-15 11:11:06 +02:00
parent 44f2cf72ac
commit 4abce7b17f
12 changed files with 201 additions and 185 deletions
-3
View File
@@ -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;
}; };
} }
+2
View File
@@ -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>();
+1 -1
View File
@@ -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;
+26
View File
@@ -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
+1
View File
@@ -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"
+1
View File
@@ -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
+2 -4
View File
@@ -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
View File
@@ -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);
-1
View File
@@ -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);
-2
View File
@@ -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);
-1
View File
@@ -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);
+4 -6
View File
@@ -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;
}
} }
} }