Beispiel #1
0
        private void CreateEnemyElement(int row, int col, EnemyCharacter enemy, Grid enemyField, bool boss = false)
        {
            Image       image  = new Image();
            BitmapImage source = new BitmapImage();

            image.Source = null;
            source.BeginInit();
            if (boss)
            {
                source.UriSource = new Uri("pack://application:,,,/Resources/CharacterSprites/Monsters/Boss/" + enemy.CharacterID + "/" + enemy.CharacterAnimationList[0].SpriteFileName);
            }
            else
            {
                source.UriSource = new Uri("pack://application:,,,/Resources/CharacterSprites/Monsters/" + enemy.CharacterID + "/" + enemy.CharacterAnimationList[0].SpriteFileName);
            }
            source.EndInit();
            image.Source = source;
            image.Width  = source.PixelWidth;
            image.Height = source.PixelHeight;

            Grid grid = new Grid()
            {
                Width  = source.PixelWidth / enemy.CharacterAnimationList[0].SpriteRowCol.X,
                Height = source.PixelHeight / enemy.CharacterAnimationList[0].SpriteRowCol.Y,
            };
            TextBlock txtBlk = new TextBlock();

            txtBlk.Style = (Style)(Application.Current.FindResource("EnemyDamageInfo"));

            grid.Children.Add(txtBlk);

            Canvas.SetLeft(image, 0);
            Canvas.SetTop(image, 0);
            Canvas canvas = new Canvas()
            {
                Width  = source.PixelWidth / enemy.CharacterAnimationList[0].SpriteRowCol.X,
                Height = source.PixelHeight / enemy.CharacterAnimationList[0].SpriteRowCol.Y
            };

            canvas.Style = (Style)(Application.Current.FindResource("EnemyCanvas"));
            canvas.Children.Add(image);
            canvas.Children.Add(grid);

            if (boss)
            {
                Grid.SetRow(canvas, 1);
            }
            else
            {
                Grid.SetRow(canvas, row);
            }
            Grid.SetColumn(canvas, col);

            enemyField.Children.Add(canvas);
            var canvasImage = (Canvas)enemyField.Children[row];

            enemy.SwitchAnimation(canvasImage, 0, App.resourcePaths.GetEnemyPath(enemy.CharacterID), null);
        }