示例#1
0
        public CCPhysicsWorld(CCScene scene)
        {
            _gravity         = new CCPoint(0.0f, -98.0f);
            _speed           = 1.0f;
            _updateRate      = 1;
            _updateRateCount = 0;
            _updateTime      = 0.0f;
            _info            = null;
            _scene           = null;
            _delayDirty      = false;

            _info = new CCPhysicsWorldInfo();

            _scene = scene;

            _info.SetGravity(PhysicsHelper.CCPointToCpVect(_gravity));

            var spc = _info.getSpace();

            spc.defaultHandler = new cpCollisionHandler()
            {
                beginFunc     = (a, s, o) => CCPhysicsWorldCallback.CollisionBeginCallbackFunc(a as cpArbiter, s, this),
                preSolveFunc  = (a, s, o) => CCPhysicsWorldCallback.CollisionPreSolveCallbackFunc(a as cpArbiter, s, this),
                postSolveFunc = (a, s, o) => CCPhysicsWorldCallback.CollisionPostSolveCallbackFunc(a as cpArbiter, s, this),
                separateFunc  = (a, s, o) => CCPhysicsWorldCallback.CollisionSeparateCallbackFunc(a as cpArbiter, s, this)
            };
        }
示例#2
0
        /** set the gravity value */
        public void SetGravity(CCPoint gravity)
        {
            if (_bodies.Count > 0)
            {
                foreach (var body in _bodies)
                {
                    // reset gravity for body
                    if (!body.IsGravityEnabled())
                    {
                        body.ApplyForce(PhysicsHelper.CCPointToCpVect((_gravity - gravity)) * body.GetMass());
                    }
                }
            }

            _gravity = gravity;
            _info.SetGravity(PhysicsHelper.CCPointToCpVect(gravity));
        }
示例#3
0
		public CCPhysicsWorld(CCScene scene)
		{

			_gravity = new CCPoint(0.0f, -98.0f);
			_speed = 1.0f;
			_updateRate = 1;
			_updateRateCount = 0;
			_updateTime = 0.0f;
			_info = null;
			_scene = null;
			_delayDirty = false;

			_info = new CCPhysicsWorldInfo();

			_scene = scene;

            _info.SetGravity(PhysicsHelper.CCPointToCpVect(_gravity));

			var spc = _info.getSpace();

			spc.defaultHandler = new cpCollisionHandler()
			{
				beginFunc = (a, s, o) => CCPhysicsWorldCallback.CollisionBeginCallbackFunc(a as cpArbiter, s, this),
				preSolveFunc = (a, s, o) => CCPhysicsWorldCallback.CollisionPreSolveCallbackFunc(a as cpArbiter, s, this),
				postSolveFunc = (a, s, o) => CCPhysicsWorldCallback.CollisionPostSolveCallbackFunc(a as cpArbiter, s, this),
				separateFunc = (a, s, o) => CCPhysicsWorldCallback.CollisionSeparateCallbackFunc(a as cpArbiter, s, this)
			};

		}