Пример #1
0
        private void UpdateFixedPatrol(GameTime gameTime)
        {
            waitTimer += (float)gameTime.ElapsedGameTime.TotalMilliseconds;

            float brakepoint = (speed / acceleration) * 2;

            if (DistanceBetween((int)Position.X, patrolPointA) <= brakepoint)
            {
                if (previousPoint != patrolPointA)
                {
                    previousPoint = patrolPointA;
                    waitTimer = 0;
                }

                nextPoint = patrolPointB;

                state = Constants.PlatformState.Stopped;
            }

            else if (DistanceBetween((int)Position.X, patrolPointB) <= brakepoint)
            {
                if (previousPoint != patrolPointB)
                {
                    previousPoint = patrolPointB;
                    waitTimer = 0;
                }

                nextPoint = patrolPointA;

                state = Constants.PlatformState.Stopped;
            }

            if (waitTimer >= waitTime)
            {
                GoTo(nextPoint);
            }
        }
Пример #2
0
        private void GoTo(int point)
        {
            int position = (int)this.Position.X;

            if (position < point)
            {
                direction = Constants.DirectionX.Right;
                state = Constants.PlatformState.Moving;
            }
            else if (position > point)
            {
                direction = Constants.DirectionX.Left;
                state = Constants.PlatformState.Moving;
            }
        }
Пример #3
0
        private void UpdateCollapsing(GameTime gameTime)
        {
            if (hasTriggered)
            {
                state = Constants.PlatformState.Falling;
            }
            else
            {
                tempVector.X = 0;
                tempVector.Y = -4;

                if (CollisionMap == null)
                {
                    ObjectCollisionEvent e = CollisionHandler.CollisionOccursWithObject(this, tempVector);
                    if (e != null)
                        hasBeenTouched = true;
                }
                else
                {

                }

                if(hasBeenTouched)
                    waitTimer += (float)gameTime.ElapsedGameTime.TotalMilliseconds;

                if (waitTimer > waitTime)
                    hasTriggered = true;
            }
        }