示例#1
0
        /// <summary>
        /// Used by game controls to face a certain direction.  Forbids 180 degree turns when player has a tail.
        /// </summary>
        /// <param name="dir"></param>
        public void TurnTowards(Direction dir)
        {
            if (TailSize > 0 && dir == _direction.Opposite())
            {
                return;
            }

            SetDirectionForced(dir);
        }
示例#2
0
        public bool Update(GameTime gameTime)
        {
            _elapsedMilliseconds += gameTime.ElapsedGameTime.TotalMilliseconds;
            if (_elapsedMilliseconds < _millisecondsBetweenUpdate)
            {
                return(true);
            }
            _elapsedMilliseconds = 0;

            if (NextDirections.Count > 0)
            {
                Direction newDirection = NextDirections.Dequeue();
                if (Count == 1 || CurrentDirection != newDirection.Opposite())
                {
                    CurrentDirection = newDirection;
                }
            }
            if (_partsToAdd > 0)
            {
                AddPiece();
                _partsToAdd--;
            }

            MoveLast();

            if (Head.Intersects(food))
            {
                Score += 25;
                ChangeSpeed(-5);
                food.SetRandomPosition();
                AddParts(3);
            }

            if (HasCollidedWithSelf() || HasCollidedWithWall())
            {
                return(false);
            }
            return(true);
        }