/// <summary> /// Zapętlenie gifa wyświelającego wylosowaną liczbę na kostce /// </summary> private void MediaElementDiceLoading_MediaEnded(object sender, RoutedEventArgs e) { MediaElementDiceLoading.Position = new TimeSpan(0, 0, 1); MediaElementDiceLoading.Play(); }
/// <summary> /// Generowanie kostki do gry /// </summary> /// <param name="number">Liczba od 1 do 6</param> private async void GenerateDice(int number) { void GenerateDot(Grid diceGridElement, int x, int y) { Ellipse dot = new Ellipse { Fill = new SolidColorBrush(Colors.Black), Margin = new Thickness(1, 1, 1, 1) }; Grid.SetColumn(dot, x); Grid.SetRow(dot, y); diceGridElement.Children.Add(dot); } ButtonRollDice.IsEnabled = false; GridDice.BeginAnimation(OpacityProperty, diceGridFadeOutAnimation); await Task.Delay(300); GridDice.Children.Clear(); GridDice.Visibility = Visibility.Collapsed; MediaElementDiceLoading.Visibility = Visibility.Visible; MediaElementDiceLoading.BeginAnimation(OpacityProperty, diceLoadingAnimation); switch (number) { case 1: GenerateDot(GridDice, 2, 2); break; case 2: GenerateDot(GridDice, 1, 1); GenerateDot(GridDice, 3, 3); break; case 3: GenerateDot(GridDice, 1, 1); GenerateDot(GridDice, 2, 2); GenerateDot(GridDice, 3, 3); break; case 4: GenerateDot(GridDice, 1, 1); GenerateDot(GridDice, 3, 1); GenerateDot(GridDice, 1, 3); GenerateDot(GridDice, 3, 3); break; case 5: GenerateDot(GridDice, 1, 1); GenerateDot(GridDice, 3, 1); GenerateDot(GridDice, 2, 2); GenerateDot(GridDice, 1, 3); GenerateDot(GridDice, 3, 3); break; case 6: GenerateDot(GridDice, 1, 1); GenerateDot(GridDice, 1, 2); GenerateDot(GridDice, 1, 3); GenerateDot(GridDice, 3, 1); GenerateDot(GridDice, 3, 2); GenerateDot(GridDice, 3, 3); break; } await Task.Delay(700); GridDice.BeginAnimation(OpacityProperty, diceGridFadeInAnimation); GridDice.Visibility = Visibility.Visible; MediaElementDiceLoading.Visibility = Visibility.Collapsed; ButtonRollDice.IsEnabled = true; }