コード例 #1
0
        private void ChangeSnakeDirection(Direction newDirection)
        {
            SnakePart snakeHead = gsm.GetSnake().GetSnakeHead();

            if (newDirection != snakeHead.GetSnakeDirection().GetOppositeDirection())
            {
                snakeHead.SetSnakePartDirection(newDirection);
            }
        }
コード例 #2
0
        void MoveSnakePartToTileOfNextSnakePart(MapManager mm, SnakePart snakePart, SnakePart nextSnakePart)
        {
            Tile nextTile = mm.GetTileWithItem(nextSnakePart);

            if (nextTile == null)
            {
                throw new Exception("nextTile is null");
            }
            mm.PlaceItemOnTile(nextTile, snakePart);
            snakePart.SetSnakePartDirection(nextSnakePart.GetSnakeDirection().GetCurrentDirection());
        }
コード例 #3
0
ファイル: MapManager.cs プロジェクト: Avalin/wf_snake
        public Tile GetTileInFrontOfSnakePart(SnakePart snakePart)
        {
            Direction partDirection = snakePart.GetSnakeDirection().GetCurrentDirection();

            switch (partDirection)
            {
            case Direction.Up:
                return(FindUpwardsNeighbourToTile(GetTileWithItem(snakePart)));

            case Direction.Down:
                return(FindDownwardsNeighbourToTile(GetTileWithItem(snakePart)));

            case Direction.Left:
                return(FindLeftNeighbourToTile(GetTileWithItem(snakePart)));

            case Direction.Right:
                return(FindRightNeighbourToTile(GetTileWithItem(snakePart)));

            default:
                return(FindRightNeighbourToTile(GetTileWithItem(snakePart)));
            }
        }
コード例 #4
0
ファイル: MapManager.cs プロジェクト: Avalin/wf_snake
        public Tile GetTileBehindSnakePart(SnakePart snakePart)
        {
            Direction oppositeOfPartDirection = snakePart.GetSnakeDirection().GetOppositeDirection();

            switch (oppositeOfPartDirection)
            {
            case Direction.Up:
                return(FindUpwardsNeighbourToTile(GetTileWithItem(snakePart)));

            case Direction.Down:
                return(FindDownwardsNeighbourToTile(GetTileWithItem(snakePart)));

            case Direction.Left:
                return(FindLeftNeighbourToTile(GetTileWithItem(snakePart)));

            case Direction.Right:
                return(FindRightNeighbourToTile(GetTileWithItem(snakePart)));

            default:
                return(FindRightNeighbourToTile(GetTileWithItem(snakePart)));
            }
        }