Particles working, still need some more variables implanted though
This commit is contained in:
+41
-40
@@ -207,61 +207,62 @@ public:
|
|||||||
m_World->CommitEntity(background);
|
m_World->CommitEntity(background);
|
||||||
}
|
}
|
||||||
|
|
||||||
//ParticleTest
|
|
||||||
// {
|
|
||||||
// auto Pe = m_World->CreateEntity();
|
|
||||||
// auto transform = m_World->AddComponent<Components::Transform>(Pe);
|
|
||||||
// auto particleEmitter= m_World->AddComponent<Components::ParticleEmitter>(Pe);
|
|
||||||
//
|
|
||||||
// transform->Position = glm::vec3(0.f, -5.f, -10.f);
|
|
||||||
// particleEmitter->GravityScale = 0.0f;
|
|
||||||
// particleEmitter->SpawnRate = 1.0f;
|
|
||||||
//
|
|
||||||
// {
|
|
||||||
// auto Pt = m_World->CreateEntity(Pe);
|
|
||||||
// auto PtTransform = m_World->AddComponent<Components::Transform>(Pt);
|
|
||||||
// auto PtSprite = m_World->AddComponent<Components::Sprite>(Pt);
|
|
||||||
// //auto PtModel = m_World->AddComponent<Components::Model>(Pt);
|
|
||||||
// auto PtParticle = m_World->AddComponent<Components::Particle>(Pt);
|
|
||||||
// auto PtTemplate = m_World->AddComponent<Components::Template>(Pt);
|
|
||||||
//
|
|
||||||
// PtTransform->Velocity = glm::vec3(1.0f, 0.f, 0.f);
|
|
||||||
// PtTransform->Position = transform->Position;
|
|
||||||
// PtSprite->SpriteFile = "Textures/Ball.png";
|
|
||||||
//
|
|
||||||
// //PtModel->ModelFile = "Models/Brick/Brick.obj";
|
|
||||||
// PtParticle->LifeTime = 1000.f;
|
|
||||||
// PtParticle->Flags = ParticleFlags::Type::powderParticle;
|
|
||||||
// }
|
|
||||||
// m_World->CommitEntity(Pe);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// {
|
|
||||||
// auto Pt = m_World->CreateEntity();
|
|
||||||
// auto PtTransform = m_World->AddComponent<Components::Transform>(Pt);
|
|
||||||
// auto PtSprite = m_World->AddComponent<Components::Sprite>(Pt);
|
|
||||||
//
|
|
||||||
// PtTransform->Position = glm::vec3(2.f, 0.f, -10.f);
|
|
||||||
// PtSprite->SpriteFile = "Textures/Ball.png";
|
|
||||||
// }
|
|
||||||
|
|
||||||
//Water test
|
//Water test
|
||||||
{
|
{
|
||||||
auto t_waterBody = m_World->CreateEntity();
|
auto t_waterBody = m_World->CreateEntity();
|
||||||
auto transform = m_World->AddComponent<Components::Transform>(t_waterBody);
|
auto transform = m_World->AddComponent<Components::Transform>(t_waterBody);
|
||||||
transform->Position = glm::vec3(0.f, -5.5f, -10.f);
|
transform->Position = glm::vec3(0.f, -5.5f, -10.f);
|
||||||
transform->Scale = glm::vec3(7.f, 1.5f, 1.f);
|
transform->Scale = glm::vec3(0.2f, 0.2f, 1.f);
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//ParticleTest
|
||||||
|
{
|
||||||
|
auto Pe = m_World->CreateEntity();
|
||||||
|
auto transform = m_World->AddComponent<Components::Transform>(Pe);
|
||||||
|
auto particleEmitter= m_World->AddComponent<Components::ParticleEmitter>(Pe);
|
||||||
|
|
||||||
|
transform->Position = glm::vec3(0.f, -5.f, -10.f);
|
||||||
|
particleEmitter->GravityScale = 0.0f;
|
||||||
|
particleEmitter->SpawnRate = 1.0f;
|
||||||
|
particleEmitter->NumberOfTicks = 3.f;
|
||||||
|
|
||||||
|
{
|
||||||
|
auto Pt = m_World->CreateEntity(Pe);
|
||||||
|
auto PtTransform = m_World->AddComponent<Components::Transform>(Pt);
|
||||||
|
auto PtSprite = m_World->AddComponent<Components::Sprite>(Pt);
|
||||||
|
auto PtParticle = m_World->AddComponent<Components::Particle>(Pt);
|
||||||
|
auto PtTemplate = m_World->AddComponent<Components::Template>(Pt);
|
||||||
|
|
||||||
|
PtTransform->Velocity = glm::vec3(1.0f, 0.f, 0.f);
|
||||||
|
PtTransform->Position = transform->Position;
|
||||||
|
PtSprite->SpriteFile = "Textures/Test/Water.png";
|
||||||
|
PtParticle->LifeTime = 5.f;
|
||||||
|
PtParticle->Flags = ParticleFlags::Type::powderParticle;
|
||||||
|
}
|
||||||
|
m_World->CommitEntity(Pe);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
auto Pt = m_World->CreateEntity();
|
||||||
|
auto PtTransform = m_World->AddComponent<Components::Transform>(Pt);
|
||||||
|
auto PtSprite = m_World->AddComponent<Components::Sprite>(Pt);
|
||||||
|
auto PtParticle = m_World->AddComponent<Components::Particle>(Pt);
|
||||||
|
|
||||||
|
PtTransform->Velocity = glm::vec3(1.0f, 0.f, 0.f);
|
||||||
|
PtTransform->Position = glm::vec3(0.f, 0.f, -10.f);
|
||||||
|
PtSprite->SpriteFile = "Textures/Ball.png";
|
||||||
|
//PtModel->ModelFile = "Models/Brick/Brick.obj";
|
||||||
|
}
|
||||||
|
|
||||||
//TODO: Why does the ball not collide with these bricks?
|
//TODO: Why does the ball not collide with these bricks?
|
||||||
//BottomBox
|
//BottomBox
|
||||||
{
|
{
|
||||||
auto topWall = m_World->CreateEntity();
|
auto topWall = m_World->CreateEntity();
|
||||||
auto transform = m_World->AddComponent<Components::Transform>(topWall);
|
auto transform = m_World->AddComponent<Components::Transform>(topWall);
|
||||||
transform->Position = glm::vec3(0.f, -6.f, -9.9f);
|
transform->Position = glm::vec3(0.f, -7.f, -9.9f);
|
||||||
transform->Scale = glm::vec3(10.f, 0.5f, 1.f);
|
transform->Scale = glm::vec3(10.f, 0.5f, 1.f);
|
||||||
std::shared_ptr<Components::Sprite> sprite = m_World->AddComponent<Components::Sprite>(topWall);
|
std::shared_ptr<Components::Sprite> sprite = m_World->AddComponent<Components::Sprite>(topWall);
|
||||||
sprite->SpriteFile = "Textures/Core/ErrorTexture.png";
|
sprite->SpriteFile = "Textures/Core/ErrorTexture.png";
|
||||||
|
|||||||
@@ -9,10 +9,11 @@ namespace Components
|
|||||||
|
|
||||||
struct ParticleEmitter : public Component
|
struct ParticleEmitter : public Component
|
||||||
{
|
{
|
||||||
int Amount = 10.f;
|
int NumberOfTicks = 10.f;
|
||||||
float InitialSpeed = 1.f;
|
float InitialSpeed = 1.f;
|
||||||
double SpawnRate = 1.f;
|
double SpawnRate = 1.f;
|
||||||
double TimeSinceLastSpawn = 0;
|
double TimeSinceLastSpawn = 0;
|
||||||
|
int MaxCount = 0;
|
||||||
|
|
||||||
//ParticleSystem variables
|
//ParticleSystem variables
|
||||||
float GravityScale = 1.0f;
|
float GravityScale = 1.0f;
|
||||||
|
|||||||
@@ -70,13 +70,16 @@ private:
|
|||||||
|
|
||||||
void CreateBody(EntityID entity);
|
void CreateBody(EntityID entity);
|
||||||
|
|
||||||
std::vector<b2ParticleSystem*> m_ParticleSystem;
|
b2ParticleSystem* m_WaterParticleSystem;
|
||||||
std::vector<b2ParticleGroup*> t_ParticleGroup;
|
std::vector<b2ParticleGroup*> t_ParticleGroup;
|
||||||
|
|
||||||
|
std::unordered_map<EntityID, const b2ParticleHandle*> m_EntitiesToWaterParticleHandle;
|
||||||
|
std::unordered_map<const b2ParticleHandle*, EntityID> m_WaterParticleHandleToEntities;
|
||||||
|
|
||||||
std::vector<std::unordered_map<EntityID, const b2ParticleHandle*>> m_EntitiesToParticleHandle;
|
std::vector<std::unordered_map<EntityID, const b2ParticleHandle*>> m_EntitiesToParticleHandle;
|
||||||
std::vector<std::unordered_map<const b2ParticleHandle*, EntityID>> m_ParticleHandleToEntities;
|
std::vector<std::unordered_map<const b2ParticleHandle*, EntityID>> m_ParticleHandleToEntities;
|
||||||
|
|
||||||
b2ParticleSystem* CreateParticleSystem(float radius, float gravityScale);
|
b2ParticleSystem* CreateParticleSystem(float radius, float gravityScale, int maxCount);
|
||||||
void InitializeWater();
|
void InitializeWater();
|
||||||
void CreateParticleGroup(EntityID entity);
|
void CreateParticleGroup(EntityID entity);
|
||||||
void CreateParticleEmitter(EntityID entity);
|
void CreateParticleEmitter(EntityID entity);
|
||||||
|
|||||||
@@ -31,7 +31,14 @@ void dd::Systems::PhysicsSystem::InitializeWater()
|
|||||||
{
|
{
|
||||||
float radius = 0.13f;
|
float radius = 0.13f;
|
||||||
float gravityScale = 1.0f;
|
float gravityScale = 1.0f;
|
||||||
CreateParticleSystem(radius, gravityScale);
|
|
||||||
|
b2ParticleSystemDef m_ParticleSystemDef;
|
||||||
|
m_ParticleSystemDef.radius = radius;
|
||||||
|
m_ParticleSystemDef.gravityScale = gravityScale;
|
||||||
|
|
||||||
|
m_WaterParticleSystem = m_PhysicsWorld->CreateParticleSystem(&m_ParticleSystemDef);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool dd::Systems::PhysicsSystem::SetImpulse(const Events::SetImpulse &event)
|
bool dd::Systems::PhysicsSystem::SetImpulse(const Events::SetImpulse &event)
|
||||||
@@ -77,7 +84,6 @@ void dd::Systems::PhysicsSystem::Update(double dt) {
|
|||||||
LOG_ERROR("RigidBody with no PhysicsComponent");
|
LOG_ERROR("RigidBody with no PhysicsComponent");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (body == nullptr) {
|
if (body == nullptr) {
|
||||||
LOG_ERROR("This body should not exist");
|
LOG_ERROR("This body should not exist");
|
||||||
continue;
|
continue;
|
||||||
@@ -146,8 +152,32 @@ void dd::Systems::PhysicsSystem::Update(double dt) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//water
|
||||||
|
b2Vec2 *positionBuffer = m_WaterParticleSystem->GetPositionBuffer();
|
||||||
|
for (auto i : m_EntitiesToWaterParticleHandle){
|
||||||
|
EntityID entity = i.first;
|
||||||
|
b2ParticleHandle *particleH = i.second;
|
||||||
|
|
||||||
|
|
||||||
|
b2Vec2 positionB2 = positionBuffer[particleH->GetIndex()];
|
||||||
|
glm::vec2 position = glm::vec2(positionB2.x, positionB2.y);
|
||||||
|
|
||||||
|
EntityID entityParent = m_World->GetEntityParent(entity);
|
||||||
|
glm::vec3 parentTransform = glm::vec3(0.f);
|
||||||
|
if(entityParent) {
|
||||||
|
auto tp = m_World->GetComponent<Components::Transform>(entityParent);
|
||||||
|
parentTransform = tp->Position;
|
||||||
|
}
|
||||||
|
auto transform = m_World->GetComponent<Components::Transform>(entity);
|
||||||
|
|
||||||
|
transform->Position = glm::vec3(position.x, position.y, -10);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Normal particles
|
||||||
for ( int e = 0; e < m_EntitiesToParticleHandle.size(); e++) {
|
for ( int e = 0; e < m_EntitiesToParticleHandle.size(); e++) {
|
||||||
b2Vec2 *positionBuffer = m_ParticleSystem[e]->GetPositionBuffer();
|
b2Vec2 *positionBuffer = m_ParticleEmitters.ParticleSystem[e]->GetPositionBuffer();
|
||||||
for (auto i : m_EntitiesToParticleHandle[e]){
|
for (auto i : m_EntitiesToParticleHandle[e]){
|
||||||
EntityID entity = i.first;
|
EntityID entity = i.first;
|
||||||
b2ParticleHandle *particleH = i.second;
|
b2ParticleHandle *particleH = i.second;
|
||||||
@@ -163,8 +193,7 @@ void dd::Systems::PhysicsSystem::Update(double dt) {
|
|||||||
}
|
}
|
||||||
auto transform = m_World->GetComponent<Components::Transform>(entity);
|
auto transform = m_World->GetComponent<Components::Transform>(entity);
|
||||||
|
|
||||||
transform->Position = glm::vec3(position.x, position.y, -10) - parentTransform;
|
transform->Position = glm::vec3(position.x, position.y, -10);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -280,7 +309,7 @@ void dd::Systems::PhysicsSystem::CreateBody(EntityID entity)
|
|||||||
|
|
||||||
|
|
||||||
if(physicsComponent->Static) {
|
if(physicsComponent->Static) {
|
||||||
body->CreateFixture(&fixtureDef); //Density kanske ska vara 0 på statiska kroppar
|
body->CreateFixture(&fixtureDef); //Density kanske ska vara 0 p� statiska kroppar
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
fixtureDef.shape = pShape;
|
fixtureDef.shape = pShape;
|
||||||
@@ -314,19 +343,19 @@ void dd::Systems::PhysicsSystem::CreateParticleGroup(EntityID e)
|
|||||||
pd.shape = &shape;
|
pd.shape = &shape;
|
||||||
pd.flags = b2_tensileParticle;
|
pd.flags = b2_tensileParticle;
|
||||||
pd.position.Set(transform->Position.x, transform->Position.y);
|
pd.position.Set(transform->Position.x, transform->Position.y);
|
||||||
t_ParticleGroup.push_back(m_ParticleSystem[0]->CreateParticleGroup(pd));
|
t_ParticleGroup.push_back(m_WaterParticleSystem->CreateParticleGroup(pd));
|
||||||
b2Vec2* t_ParticlePositions = m_ParticleSystem[0]->GetPositionBuffer();
|
b2Vec2* t_ParticlePositions = m_WaterParticleSystem->GetPositionBuffer();
|
||||||
for(int i = 0; i < m_ParticleSystem[0]->GetParticleCount(); i++){
|
for(int i = 0; i < m_WaterParticleSystem->GetParticleCount(); i++){
|
||||||
{
|
{
|
||||||
auto t_waterparticle = m_World->CreateEntity(e);
|
auto t_waterparticle = m_World->CreateEntity(e);
|
||||||
auto transformChild = m_World->AddComponent<Components::Transform>(t_waterparticle);
|
auto transformChild = m_World->AddComponent<Components::Transform>(t_waterparticle);
|
||||||
|
|
||||||
transformChild->Position = glm::vec3(t_ParticlePositions[i].x - transform->Position.x, t_ParticlePositions[i].y - transform->Position.y, -9.5f);
|
transformChild->Position = glm::vec3(t_ParticlePositions[i].x - transform->Position.x, t_ParticlePositions[i].y - transform->Position.y, -9.5f);
|
||||||
transformChild->Scale = glm::vec3(m_ParticleSystem[0]->GetRadius())/transform->Scale;
|
transformChild->Scale = glm::vec3(m_WaterParticleSystem->GetRadius())/transform->Scale;
|
||||||
m_World->CommitEntity(t_waterparticle);
|
m_World->CommitEntity(t_waterparticle);
|
||||||
|
|
||||||
m_EntitiesToParticleHandle[0].insert(std::make_pair(t_waterparticle, m_ParticleSystem[0]->GetParticleHandleFromIndex(i)));
|
m_EntitiesToWaterParticleHandle.insert(std::make_pair(t_waterparticle, m_WaterParticleSystem->GetParticleHandleFromIndex(i)));
|
||||||
m_ParticleHandleToEntities[0].insert(std::make_pair( m_ParticleSystem[0]->GetParticleHandleFromIndex(i), t_waterparticle));
|
m_WaterParticleHandleToEntities.insert(std::make_pair(m_WaterParticleSystem->GetParticleHandleFromIndex(i), t_waterparticle));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -336,6 +365,7 @@ void dd::Systems::PhysicsSystem::CreateParticleGroup(EntityID e)
|
|||||||
|
|
||||||
void dd::Systems::PhysicsSystem::UpdateParticleEmitters(double dt)
|
void dd::Systems::PhysicsSystem::UpdateParticleEmitters(double dt)
|
||||||
{
|
{
|
||||||
|
//TODO: ParticleEmitters system are more than one? Wtf?
|
||||||
for (int i = 0; i < m_ParticleEmitters.ParticleSystem.size(); i++) {
|
for (int i = 0; i < m_ParticleEmitters.ParticleSystem.size(); i++) {
|
||||||
auto e = m_ParticleEmitters.ParticleEmitter[i];
|
auto e = m_ParticleEmitters.ParticleEmitter[i];
|
||||||
auto pt = m_ParticleEmitters.ParticleTemplate[i];
|
auto pt = m_ParticleEmitters.ParticleTemplate[i];
|
||||||
@@ -344,10 +374,21 @@ void dd::Systems::PhysicsSystem::UpdateParticleEmitters(double dt)
|
|||||||
|
|
||||||
auto emitter = m_World->GetComponent<Components::ParticleEmitter>(e);
|
auto emitter = m_World->GetComponent<Components::ParticleEmitter>(e);
|
||||||
auto particleTemplate = m_World->GetComponent<Components::Particle>(pt);
|
auto particleTemplate = m_World->GetComponent<Components::Particle>(pt);
|
||||||
emitter->TimeSinceLastSpawn += dt;
|
if(!emitter) {
|
||||||
if(emitter->TimeSinceLastSpawn < emitter->SpawnRate) {
|
LOG_INFO("ParticleEmitter Component is nil");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if(!particleTemplate) {
|
||||||
|
LOG_INFO("ParticleTemplate Component is nil.");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
emitter->TimeSinceLastSpawn += dt;
|
||||||
|
if(emitter->TimeSinceLastSpawn < emitter->SpawnRate || emitter->NumberOfTicks < 1) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
emitter->NumberOfTicks--;
|
||||||
emitter->TimeSinceLastSpawn -= emitter->SpawnRate;
|
emitter->TimeSinceLastSpawn -= emitter->SpawnRate;
|
||||||
auto templateTransform = m_World->GetComponent<Components::Transform>(pt);
|
auto templateTransform = m_World->GetComponent<Components::Transform>(pt);
|
||||||
|
|
||||||
@@ -358,21 +399,16 @@ void dd::Systems::PhysicsSystem::UpdateParticleEmitters(double dt)
|
|||||||
particleDef.velocity = b2Vec2(templateTransform->Velocity.x, templateTransform->Velocity.y);
|
particleDef.velocity = b2Vec2(templateTransform->Velocity.x, templateTransform->Velocity.y);
|
||||||
particleDef.position = b2Vec2(templateTransform->Position.x, templateTransform->Position.y);
|
particleDef.position = b2Vec2(templateTransform->Position.x, templateTransform->Position.y);
|
||||||
|
|
||||||
|
|
||||||
auto particle = m_World->CloneEntity(pt, 0);
|
auto particle = m_World->CloneEntity(pt, 0);
|
||||||
m_World->RemoveComponent<Components::Template>(particle);
|
m_World->RemoveComponent<Components::Template>(particle);
|
||||||
|
auto transform = m_World->GetComponent<Components::Transform>(particle);
|
||||||
|
transform->Scale = glm::vec3 (particleTemplate->Radius * 2.f, particleTemplate->Radius * 2.f, 1);
|
||||||
|
|
||||||
auto b2Particle = ps->CreateParticle(particleDef);
|
auto b2Particle = ps->CreateParticle(particleDef);
|
||||||
auto b2ParticleHandle = ps->GetParticleHandleFromIndex(b2Particle);
|
auto b2ParticleHandle = ps->GetParticleHandleFromIndex(b2Particle);
|
||||||
m_EntitiesToParticleHandle[i].insert(std::make_pair(particle, b2ParticleHandle));
|
m_EntitiesToParticleHandle[i].insert(std::make_pair(particle, b2ParticleHandle));
|
||||||
m_ParticleHandleToEntities[i].insert(std::make_pair(b2ParticleHandle, particle));
|
m_ParticleHandleToEntities[i].insert(std::make_pair(b2ParticleHandle, particle));
|
||||||
|
|
||||||
//TODO: Ta bort detta
|
|
||||||
int particles = 0;
|
|
||||||
for (auto i : m_EntitiesToParticleHandle)
|
|
||||||
{
|
|
||||||
particles += i.size();
|
|
||||||
}
|
|
||||||
LOG_INFO("--I have %i particles.", particles);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -406,13 +442,14 @@ void dd::Systems::PhysicsSystem::CreateParticleEmitter(EntityID entity)
|
|||||||
pf++;
|
pf++;
|
||||||
}
|
}
|
||||||
//TODO: Skicka med fler flaggor till particlesystemet;
|
//TODO: Skicka med fler flaggor till particlesystemet;
|
||||||
m_ParticleEmitters.ParticleSystem.push_back(CreateParticleSystem(particle->Radius, 0.f));
|
|
||||||
|
m_ParticleEmitters.ParticleSystem.push_back(CreateParticleSystem(particle->Radius, 0.f, 0));
|
||||||
m_ParticleEmitters.ParticleEmitter.push_back(entity);
|
m_ParticleEmitters.ParticleEmitter.push_back(entity);
|
||||||
m_ParticleEmitters.ParticleTemplate.push_back(childEntity);
|
m_ParticleEmitters.ParticleTemplate.push_back(childEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
b2ParticleSystem* dd::Systems::PhysicsSystem::CreateParticleSystem(float radius, float gravityScale)
|
b2ParticleSystem* dd::Systems::PhysicsSystem::CreateParticleSystem(float radius, float gravityScale, int maxCount)
|
||||||
{
|
{
|
||||||
std::unordered_map<EntityID, const b2ParticleHandle*> m1;
|
std::unordered_map<EntityID, const b2ParticleHandle*> m1;
|
||||||
std::unordered_map<const b2ParticleHandle*, EntityID> m2;
|
std::unordered_map<const b2ParticleHandle*, EntityID> m2;
|
||||||
@@ -420,12 +457,11 @@ b2ParticleSystem* dd::Systems::PhysicsSystem::CreateParticleSystem(float radius,
|
|||||||
m_ParticleHandleToEntities.push_back(m2);
|
m_ParticleHandleToEntities.push_back(m2);
|
||||||
|
|
||||||
b2ParticleSystemDef m_ParticleSystemDef;
|
b2ParticleSystemDef m_ParticleSystemDef;
|
||||||
|
m_ParticleSystemDef.maxCount = maxCount;
|
||||||
m_ParticleSystemDef.radius = radius;
|
m_ParticleSystemDef.radius = radius;
|
||||||
m_ParticleSystemDef.gravityScale = gravityScale;
|
m_ParticleSystemDef.gravityScale = gravityScale;
|
||||||
|
|
||||||
m_ParticleSystem.push_back(m_PhysicsWorld->CreateParticleSystem(&m_ParticleSystemDef));
|
return m_PhysicsWorld->CreateParticleSystem(&m_ParticleSystemDef);
|
||||||
|
|
||||||
return m_ParticleSystem.back();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dd::Systems::PhysicsSystem::~PhysicsSystem()
|
dd::Systems::PhysicsSystem::~PhysicsSystem()
|
||||||
|
|||||||
Reference in New Issue
Block a user