Ejemplo n.º 1
0
        public Player(string assetFile, RenderContext context, Vector2 originalPos)
            : base(assetFile, "Textures/Collision/c_Piece1", context)
        {
            base.Name    = "Player";
            m_OrginalPos = originalPos;
            //Create rigidBody
            RigidBody               = BodyFactory.CreateRectangle(context.World, ConvertUnits.ToSimUnits(20), ConvertUnits.ToSimUnits(10), 1.0f);
            RigidBody.BodyType      = BodyType.Dynamic;
            RigidBody.OnCollision  += RigidBody_OnCollision;
            RigidBody.OnSeparation += RigidBody_OnSeparation;
            RigidBody.UserData      = this; //Add this class as data for easy access in collision
            RigidBody.Restitution   = 0.1f;
            Depth = -200;

            //Xml
            var xmlPlayerData = XmlLoader.Load <PlayerSettings>("PlayerSettings");

            m_Multplier        = xmlPlayerData.multiplier;
            m_TurnAmount       = xmlPlayerData.turnAmount;
            m_CurrentIncrement = xmlPlayerData.windIncrement;

            m_Velocity = Vector2.Zero;
        }
Ejemplo n.º 2
0
        Vector2 Wind(float delta)
        {
            Vector2 wind;

            if (!PickUpFromGround)
            {
                wind = new Vector2(m_CurrentWindForce, -0.4f - 0.02f * (Position.Y / 25));
                if (wind.Y < 4f)
                {
                    wind = new Vector2(wind.X, 4f);
                }
            }
            else //Get Sucked in or pushed out
            {
                wind = new Vector2(0f, m_VulcanoPower * PullDirection);
                m_PickupFromGroundTime += delta;
                if (m_PickupFromGroundTime > m_PickupFromGroundMaxTime)
                {
                    m_PickupFromGroundTime = 0;
                    PickUpFromGround       = false;
                }
            }

            var xmlPlayerData = XmlLoader.Load <PlayerSettings>("PlayerSettings");

            if (xmlPlayerData.windX != -1f)
            {
                wind = new Vector2(xmlPlayerData.windX, wind.Y);
            }
            if (xmlPlayerData.windY != -1f)
            {
                wind = new Vector2(wind.X, xmlPlayerData.windY);
            }

            return(wind);
        }