Beispiel #1
0
        public void RenderWithAnimation(Game game)
        {
            if (game != null)
            {
                this.tiles = game.GameBoard;
            }

            foreach (var transform in game.LastTransforms)
            {
                if (transform.Type == GameLib.GameBoard.TransformType.Tranlate)
                {
                    var Tile = GetChildren(transform.LastY, transform.LastX);
                    Canvas.SetZIndex(Tile.GetElement(), 1);

                    int offsetX = transform.X - transform.LastX;
                    int offsetY = transform.Y - transform.LastY;

                    Tile.ApplyTransform(offsetX, offsetY);
                }

                if (transform.Type == GameLib.GameBoard.TransformType.Merge)
                {
                    var Tile = GetChildren(transform.LastY, transform.LastX);
                    Canvas.SetZIndex(Tile.GetElement(), 2);

                    int transformX = (transform.X - transform.LastX);
                    int transformY = (transform.Y - transform.LastY);

                    Tile.ApplyTransform(transformX, transformY);
                    Tile.ApplyMerge(game.GameBoard[transform.Y, transform.X]);
                }

                else if (transform.Type == GameLib.GameBoard.TransformType.New)
                {
                    double x = transform.X * tileSize + (transform.X + 1) * margin;
                    double y = transform.Y * tileSize + (transform.Y + 1) * margin;

                    var Tile = new GameTile(game.GameBoard[transform.Y, transform.X], x, y, tileSize, transform.Y, transform.X);
                    ch.Add(Tile);

                    canvas.Children.Add(Tile.GetElement());

                    Canvas.SetZIndex(Tile.GetElement(), 3);
                    Tile.ApplyScale();
                }
            }
        }