protected void OnDirectionChange() { var args = new SnakeInputEventArgs(CurrentInputDirection); Messenger <SnakeInputEventArgs> .Broadcast( SnakeEvents.DirectionChanged, args); }
protected void HandleChangeOfDirection(SnakeInputEventArgs eventArgs) { switch (eventArgs.Direction) { case Direction.Right: if (SegmentDirection != Direction.Left) { NextSegmentDireciton = Direction.Right; } break; case Direction.Left: if (SegmentDirection != Direction.Right) { NextSegmentDireciton = Direction.Left; } break; case Direction.Up: if (SegmentDirection != Direction.Down) { NextSegmentDireciton = Direction.Up; } break; case Direction.Down: if (SegmentDirection != Direction.Up) { NextSegmentDireciton = Direction.Down; } break; default: throw new ArgumentOutOfRangeException(); } }