コード例 #1
0
        protected override void SetAnimations()
        {
            if (ObstacleType == ObstacleType.FI)
            {
                AnimationManager.Play(Animations["IDLE"]);
            }

            if (ObstacleType == ObstacleType.PB)
            {
                AnimationManager.Play(Animations["RIGHT"]);
                m_PBDirection = PBDirection.RIGHT;
            }
        }
コード例 #2
0
        public override void Update(GameTime gameTime)
        {
            if (ObstacleType == ObstacleType.PB)
            {
                if (TheLastSliceGame.LevelManager.CurrentLevelNum > 2)
                {
                    Lerper.Acceleration = LerperAccelerationFast;
                    Lerper.MinVelocity  = LerperMinVelocitFast;
                    Lerper.MaxVelocity  = LerperMaxVelocitFast;
                }

                switch (m_PBDirection)
                {
                case PBDirection.LEFT:
                    Position = new Vector2(Lerper.Lerp(Position.X, PBInitialPos.X), Position.Y);
                    break;

                case PBDirection.RIGHT:
                    Position = new Vector2(Lerper.Lerp(Position.X, PBInitialPos.X + PBTravelDistanceX), Position.Y);
                    break;

                default:
                    break;
                }

                if (Position.X >= PBInitialPos.X + PBTravelDistanceX)
                {
                    m_PBDirection = PBDirection.LEFT;
                    AnimationManager.Play(Animations["LEFT"]);
                }

                if (Position.X <= PBInitialPos.X)
                {
                    m_PBDirection = PBDirection.RIGHT;
                    AnimationManager.Play(Animations["RIGHT"]);
                }

                CollisionComponent = new Rectangle((int)Position.X, (int)Position.Y, Width, Height);

                if (IsColliding(TheLastSliceGame.Instance.Player))
                {
                    TheLastSliceGame.Instance.Player.OnCollided(this);
                    CollisionComponent = new Rectangle(0, 0, Width, Height);
                }
            }

            base.Update(gameTime);
        }