/// <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); }
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); }