Ejemplo n.º 1
0
        protected override void UpdateBehaviour(float elapsedSeconds, float totalSeconds)
        {
            if (Vector2.Distance(lastLocation, Entity.Body.Position) > 0.3)
            {
                lastLocation = Entity.Body.Position;
                timeStuck    = 0;
            }
            timeStuck += elapsedSeconds;

            if (timeStuck > 2)
            {
                if (obstacleSensor.SensedEntity != null && obstacleSensor.SensedEntity.Body.BodyType == FarseerPhysics.Dynamics.BodyType.Static)
                {
                    Entity.Body.ApplyLinearImpulse(RandomExt.GetRandomVector(10, 30) * Weight);
                    Entity.Body.ApplyAngularImpulse(RandomExt.GetRandomFloat(100, 300) * Weight);
                }
            }
        }