Browse Source

Fix uninitialize member var causing CollissionCircle2D to missbehave.

Yao Wei Tjong 姚伟忠 11 years ago
parent
commit
4e29e1209b

+ 2 - 3
Source/Engine/Urho2D/CollisionBox2D.cpp

@@ -33,7 +33,8 @@ namespace Urho3D
 extern const char* URHO2D_CATEGORY;
 static const Vector2 DEFAULT_BOX_SIZE(0.01f, 0.01f);
 
-CollisionBox2D::CollisionBox2D(Context* context) : CollisionShape2D(context),
+CollisionBox2D::CollisionBox2D(Context* context) :
+    CollisionShape2D(context),
     size_(DEFAULT_BOX_SIZE),
     center_(Vector2::ZERO),
     angle_(0.0f)
@@ -46,7 +47,6 @@ CollisionBox2D::CollisionBox2D(Context* context) : CollisionShape2D(context),
 
 CollisionBox2D::~CollisionBox2D()
 {
-
 }
 
 void CollisionBox2D::RegisterObject(Context* context)
@@ -56,7 +56,6 @@ void CollisionBox2D::RegisterObject(Context* context)
     REF_ACCESSOR_ATTRIBUTE(CollisionBox2D, VAR_VECTOR2, "Size", GetSize, SetSize, Vector2, DEFAULT_BOX_SIZE, AM_DEFAULT);
     REF_ACCESSOR_ATTRIBUTE(CollisionBox2D, VAR_VECTOR2, "Center", GetCenter, SetCenter, Vector2, Vector2::ZERO, AM_DEFAULT);
     ACCESSOR_ATTRIBUTE(CollisionBox2D, VAR_FLOAT, "Angle", GetAngle, SetAngle, float, 0.0f, AM_DEFAULT);
-
     COPY_BASE_ATTRIBUTES(CollisionBox2D, CollisionShape2D);
 }
 

+ 5 - 4
Source/Engine/Urho2D/CollisionCircle2D.cpp

@@ -33,8 +33,10 @@ namespace Urho3D
 extern const char* URHO2D_CATEGORY;
 static const float DEFAULT_CLRCLE_RADIUS(0.01f);
 
-CollisionCircle2D::CollisionCircle2D(Context* context) : CollisionShape2D(context),
-    center_(0.0f, 0.0f)
+CollisionCircle2D::CollisionCircle2D(Context* context) :
+    CollisionShape2D(context),
+    radius_(DEFAULT_CLRCLE_RADIUS),
+    center_(Vector2::ZERO)
 {
     circleShape_.m_radius = DEFAULT_CLRCLE_RADIUS * cachedWorldScale_.x_;
     fixtureDef_.shape = &circleShape_;
@@ -42,7 +44,6 @@ CollisionCircle2D::CollisionCircle2D(Context* context) : CollisionShape2D(contex
 
 CollisionCircle2D::~CollisionCircle2D()
 {
-
 }
 
 void CollisionCircle2D::RegisterObject(Context* context)
@@ -92,7 +93,7 @@ void CollisionCircle2D::RecreateFixture()
     
     // Only use scale in x axis for circle
     float worldScale = cachedWorldScale_.x_;
-    circleShape_.m_radius = radius_* worldScale;
+    circleShape_.m_radius = radius_ * worldScale;
     circleShape_.m_p = ToB2Vec2(center_ * worldScale);
 
     CreateFixture();