コード例 #1
0
 public void SyncB2body()
 {
     if (!IsActive)
     {
         return;
     }
     base.Position = PhysicalConvert.ToAsdVector(b2Body.GetPosition());
     base.Angle    = b2Body.GetAngle() * 180.0f / 3.14f;
 }
コード例 #2
0
 public void SyncB2body()
 {
     if (!IsActive)
     {
         return;
     }
     asd.Vector2DF move = PhysicalConvert.ToAsdVector(b2Body.GetPosition()) - (DrawingArea.Size / 2.0f + DrawingArea.Position);
     base.DrawingArea = new asd.RectF(DrawingArea.Position + move, DrawingArea.Size);
     base.Angle       = b2Body.GetAngle() * 180.0f / 3.14f;
 }
コード例 #3
0
 public void SyncB2body()
 {
     if (!IsActive)
     {
         return;
     }
     centerPosition = PhysicalConvert.ToAsdVector(b2Body.GetPosition());
     angle          = b2Body.GetAngle() * 180.0f / 3.14f;
     for (int i = 0; i < 3; i++)
     {
         asd.Vector2DF temp = vertexes[i];
         temp.Degree += Angle;
         base.SetPointByIndex(CenterPosition + temp, i);
     }
 }
コード例 #4
0
 public void SyncB2body()
 {
     if (!IsActive)
     {
         return;
     }
     centerPosition = PhysicalConvert.ToAsdVector(b2Body.GetPosition());
     angle          = b2Body.GetAngle() * 180.0f / 3.14f;
     base.ClearVertexes();
     foreach (var item in vertexes)
     {
         asd.Vector2DF temp = item;
         temp.Degree += Angle;
         base.AddVertex(CenterPosition + temp);
     }
 }
コード例 #5
0
        void IContactListener.BeginContact(Contact contact)
        {
            if (!contact.AreTouching)
            {
                return;
            }
            CollisionData temp = new CollisionData();
            WorldManifold worldManifold;

            contact.GetWorldManifold(out worldManifold);
            temp.BodyA  = contact.FixtureA.Body;
            temp.BodyB  = contact.FixtureB.Body;
            temp.Points = new List <asd.Vector2DF>();
            for (int i = 0; i < contact.Manifold.PointCount; i++)
            {
                temp.Points.Add(PhysicalConvert.ToAsdVector(worldManifold.Points[i]));
            }
            collisionShapes.Add(temp);
        }
コード例 #6
0
        void IContactListener.PostSolve(Contact contact, ContactImpulse impulse)
        {
            CollisionData temp = new CollisionData();

            foreach (var item in collisionShapes)
            {
                if (item.BodyA == contact.FixtureA.Body && item.BodyB == contact.FixtureB.Body)
                {
                    temp = item;
                    break;
                }
            }
            temp.Points.Clear();
            WorldManifold worldManifold;

            contact.GetWorldManifold(out worldManifold);
            for (int i = 0; i < contact.Manifold.PointCount; i++)
            {
                temp.Points.Add(PhysicalConvert.ToAsdVector(worldManifold.Points[i]));
            }
        }