示例#1
0
文件: Player.cs 项目: TobieD/Glide
        void RandomWind(float delta)
        {
            var xmlPlayerData = XmlLoader.Load <PlayerSettings>("PlayerSettings");

            switch (m_WindState)
            {
            case WindState.NoWind:
                break;

            case WindState.BuildUp:
                if (m_CurrentWindForce < m_FinalWindForce)
                {
                    m_CurrentWindForce += m_CurrentIncrement;
                }
                else
                {
                    m_WindState = WindState.BuildOff;
                }

                break;

            case WindState.BuildOff:
                if (m_CurrentWindForce > m_MinHorizontalWind)
                {
                    m_CurrentWindForce -= m_CurrentIncrement;
                }
                else
                {
                    m_CurrentWindForce = m_MinHorizontalWind;
                    m_WindState        = WindState.NoWind;
                }
                break;
            }
        }
示例#2
0
        public BloomPostProcessing(Game game) :
            base(game)
        {
            var bloomData = XmlLoader.Load <BloomData>("BloomSettings");

            Settings = new BloomSettings("Bloom", bloomData.Tresh, bloomData.Blur, bloomData.Bloom, bloomData.Base, bloomData.BloomSat, bloomData.BaseSat);
        }
示例#3
0
文件: GameScene.cs 项目: TobieD/Glide
        public void SaveScore()
        {
            m_Data = XmlLoader.Load <SaveData>("SaveData");
            if (m_TotalDistanceTraveled >= m_Data.HighestDistance)
            {
                m_Data.HighestDistance = (int)(m_TotalDistanceTraveled * 0.02f);
            }

            XmlWriter.SaveScore(m_Data, SaveDataFile);
        }
示例#4
0
        void RandomWind(float delta)
        {
            var xmlPlayerData = XmlLoader.Load <PlayerSettings>("PlayerSettings");

            switch (m_WindState)
            {
            case WindState.NoWind:
                m_WindTime += delta;
                if (m_WindTime >= m_WindTimePause)
                {
                    m_WindTime = 0f;
                    Random rnd = new Random();
                    if (xmlPlayerData.timeBetweenWindBursts == -1)
                    {
                        m_WindTimePause = rnd.Next(1, 15);
                    }
                    else
                    {
                        m_WindTimePause = xmlPlayerData.timeBetweenWindBursts;
                    }
                    m_WindState       = WindState.BuildUp; //initialise wind burst
                    m_FinalWindForce  = (float)(rnd.NextDouble() * 10.0);
                    m_WindDirection.X = (float)(rnd.Next(2)) - 1;
                    m_WindDirection.Y = 0f;
                }
                break;

            case WindState.BuildUp:
                if (m_CurrentWindForce < m_FinalWindForce)
                {
                    m_CurrentWindForce += m_CurrentIncrement;
                    // m_Rotation += m_TurnAmount;
                }
                else
                {
                    m_WindState = WindState.BuildOff;
                }

                break;

            case WindState.BuildOff:
                if (m_CurrentWindForce > 0.1f)     //0.1 so there's always some wind
                {
                    m_CurrentWindForce -= m_CurrentIncrement;
                }
                else
                {
                    m_CurrentWindForce = 0.1f;
                    m_WindState        = WindState.NoWind;
                }
                break;
            }
        }
示例#5
0
        Vector2 Wind()
        {
            Vector2 wind          = new Vector2(m_Multplier * m_FinalWindForce * m_WindDirection.X, 2f * (Position.Y / (m_OrginalPos.Y / 2))); //was -5
            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);
        }
示例#6
0
        public Game1()
            : base()
        {
            //Set Screen size baed on settings
            var screenData = XmlLoader.Load <WorldSettings>("WorldSettings");

            m_Graphics = new GraphicsDeviceManager(this);

            if (screenData.Fullscreen)
            {
                m_Graphics.ToggleFullScreen();
                m_Graphics.PreferredBackBufferWidth  = GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width;
                m_Graphics.PreferredBackBufferHeight = GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Height;
            }
            else
            {
                m_Graphics.PreferredBackBufferWidth  = screenData.ScreenWidth;
                m_Graphics.PreferredBackBufferHeight = screenData.ScreenHeight;
            }

            Content.RootDirectory = "Content";
        }
示例#7
0
文件: Player.cs 项目: TobieD/Glide
        public Player(string assetFile, RenderContext context, Vector2 originalPos)
            : base(assetFile, "Textures/Collision/c_Piece1", context)
        {
            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;
            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;
        }
示例#8
0
文件: Player.cs 项目: TobieD/Glide
        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);
        }