Browse Source

Revert ParticleModel2D model scale, apply scene unit size to ParticleEmitter2D.

aster2013 11 years ago
parent
commit
d79c151f84
2 changed files with 18 additions and 21 deletions
  1. 1 1
      Source/Engine/Urho2D/ParticleEmitter2D.cpp
  2. 17 20
      Source/Engine/Urho2D/ParticleModel2D.cpp

+ 1 - 1
Source/Engine/Urho2D/ParticleEmitter2D.cpp

@@ -87,7 +87,7 @@ void ParticleEmitter2D::Update(const FrameInfo& frame)
 
     float timeStep = frame.timeStep_;
     Vector3 worldPosition = GetNode()->GetWorldPosition();
-    float worldScale = GetNode()->GetWorldScale().x_;
+    float worldScale = GetNode()->GetWorldScale().x_ / GetScene()->GetUnitSize2D();
 
     unsigned particleIndex = 0;
     while (particleIndex < numParticles_)

+ 17 - 20
Source/Engine/Urho2D/ParticleModel2D.cpp

@@ -155,40 +155,37 @@ bool ParticleModel2D::Load(Deserializer& source)
         }
     }
 
-    // Apply model scale
-    const float modelScale = 0.01f;
-
     duration_ = keyValueMapping["duration"].GetFloat();
     emitterType_ = (EmitterType2D)(int)keyValueMapping["emitterType"].GetFloat();
 
-    sourcePositionVariance_.x_ = keyValueMapping["sourcePositionVariancex"].GetFloat() * modelScale;
-    sourcePositionVariance_.y_ = keyValueMapping["sourcePositionVariancey"].GetFloat() * modelScale;
+    sourcePositionVariance_.x_ = keyValueMapping["sourcePositionVariancex"].GetFloat();
+    sourcePositionVariance_.y_ = keyValueMapping["sourcePositionVariancey"].GetFloat();    
 
     maxParticles_ = (unsigned)keyValueMapping["maxParticles"].GetFloat();
     particleLifeSpan_ = keyValueMapping["particleLifespan"].GetFloat();
 
     particleLifeSpanVariance_ = keyValueMapping["particleLifespanVariance"].GetFloat();
-    startParticleSize_ = keyValueMapping["startParticleSize"].GetFloat() * modelScale;
-    startParticleSizeVariance_ = keyValueMapping["startParticleSizeVariance"].GetFloat() * modelScale;
-    endParticleSize_ = keyValueMapping["finishParticleSize"].GetFloat() * modelScale;
-    endParticleSizeVariance_ = keyValueMapping["finishParticleSizeVariance"].GetFloat() * modelScale;
+    startParticleSize_ = keyValueMapping["startParticleSize"].GetFloat();
+    startParticleSizeVariance_ = keyValueMapping["startParticleSizeVariance"].GetFloat();
+    endParticleSize_ = keyValueMapping["finishParticleSize"].GetFloat();
+    endParticleSizeVariance_ = keyValueMapping["finishParticleSizeVariance"].GetFloat();
     emitAngle_ = keyValueMapping["angle"].GetFloat();
     emitAngleVariance_ = keyValueMapping["angleVariance"].GetFloat();
 
-    speed_ = keyValueMapping["speed"].GetFloat() * modelScale;
-    speedVariance_ = keyValueMapping["speedVariance"].GetFloat() * modelScale;
+    speed_ = keyValueMapping["speed"].GetFloat();
+    speedVariance_ = keyValueMapping["speedVariance"].GetFloat();
 
-    gravity_.x_ = keyValueMapping["gravityx"].GetFloat() * modelScale;
-    gravity_.y_ = keyValueMapping["gravityy"].GetFloat() * modelScale;
+    gravity_.x_ = keyValueMapping["gravityx"].GetFloat();
+    gravity_.y_ = keyValueMapping["gravityy"].GetFloat();
 
-    radialAcceleration_ = keyValueMapping["radialAcceleration"].GetFloat() * modelScale;
-    radialAccelerationVariance_ = keyValueMapping["radialAccelVariance"].GetFloat() * modelScale;
-    tangentialAcceleration_ = keyValueMapping["tangentialAcceleration"].GetFloat() * modelScale;
-    tangentialAccelerationVariance_ = keyValueMapping["tangentialAccelVariance"].GetFloat() * modelScale;
+    radialAcceleration_ = keyValueMapping["radialAcceleration"].GetFloat();
+    radialAccelerationVariance_ = keyValueMapping["radialAccelVariance"].GetFloat();
+    tangentialAcceleration_ = keyValueMapping["tangentialAcceleration"].GetFloat();
+    tangentialAccelerationVariance_ = keyValueMapping["tangentialAccelVariance"].GetFloat();
 
-    maxRadius_ = keyValueMapping["maxRadius"].GetFloat() * modelScale;
-    maxRadiusVariance_ = keyValueMapping["maxRadiusVariance"].GetFloat() * modelScale;
-    minRadius_ = keyValueMapping["minRadius"].GetFloat() * modelScale;
+    maxRadius_ = keyValueMapping["maxRadius"].GetFloat();
+    maxRadiusVariance_ = keyValueMapping["maxRadiusVariance"].GetFloat();
+    minRadius_ = keyValueMapping["minRadius"].GetFloat();
     rotatePerSecond_ = keyValueMapping["rotatePerSecond"].GetFloat();
     rotatePerSecondVariance_ = keyValueMapping["rotatePerSecondVariance"].GetFloat();