win10 uwp 商業游戲 1.2.1

来源:https://www.cnblogs.com/lindexi/archive/2018/05/30/9108962.html
-Advertisement-
Play Games

上一個游戲已經告訴大家如何寫多個游戲,現在繼續寫這個無聊的游戲 ...


上一個游戲已經告訴大家如何寫多個游戲,現在繼續寫這個無聊的游戲

希望大家在看這篇文章之前先看win10 uwp 商業游戲,在這個文章告訴了大家如何創建游戲。

修改數值

可以從上一篇的博客的游戲看到升級太簡單,所以需要在點擊升級點擊的時候,下次升級需要的添加

寫法很簡單,請看下麵

      public class HisjfnnzSqsbtuuqq : DexqurhctSjyfozae, IKdgvtziaSfs
    {
        public HisjfnnzSqsbtuuqq(IDfeppzyTmofs dfeppzy)
        {
            Dfeppzy = dfeppzy;

            HnukhltvKfdrpokjz = "點擊添加修為";

            DmyikbmfDeb = 10;

            DklvubnuiTeqch = 1;
        }

        public IDfeppzyTmofs Dfeppzy { get; }

        public override void DqqTsb()
        {
            DmyikbmfDeb *= 1.5;
            DklvubnuiTeqch += 1;
        }


        public void DdwTynktxyx()
        {
            Dfeppzy.KtrKvmvvnj += (long)Math.Floor(DklvubnuiTeqch);
        }
    }

但是可以看到界面顯示的小數點,需要只顯示兩位,可以使用轉換,請看下麵

    public class DyakmdgwuTlaukxbo:IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value is double kbjjDzn)
            {
                return kbjjDzn.ToString("F");
            }

            return "";
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
        <local:DyakmdgwuTlaukxbo x:Key="DyakmdgwuTlaukxbo"></local:DyakmdgwuTlaukxbo>

            <ListView ItemsSource="{Binding DexqurhctSjyfozae}" HorizontalAlignment="Stretch"
                      BorderBrush="Transparent" BorderThickness="0"
                      HorizontalContentAlignment="Stretch">
                <ListView.ItemContainerStyle>
                    <Style TargetType="ListViewItem">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="{x:Type ListViewItem}">
                                    <Border x:Name="Bd" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
                                        <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                                    </Border>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </ListView.ItemContainerStyle>
                <ListView.ItemTemplate>
                    <DataTemplate DataType="tpwlxnpDfyecpeoh:DexqurhctSjyfozae">
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="5*"></ColumnDefinition>
                                <ColumnDefinition Width="1*"></ColumnDefinition>
                                <ColumnDefinition Width="1*"></ColumnDefinition>
                                <ColumnDefinition Width="1*"></ColumnDefinition>
                                <ColumnDefinition Width="1*"></ColumnDefinition>
                            </Grid.ColumnDefinitions>
                            <Grid>
                                <TextBlock Style="{StaticResource HztDmaer}" Text="{Binding HnukhltvKfdrpokjz}"></TextBlock>
                            </Grid>
                            <Grid Grid.Column="1">
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Style="{StaticResource HztDmaer}" Text="當前的值"></TextBlock>
                                    <TextBlock Style="{StaticResource HztDmaer}" Text="{Binding DklvubnuiTeqch,Converter={StaticResource DyakmdgwuTlaukxbo}}"></TextBlock>
                                </StackPanel>
                            </Grid>
                            <Grid Grid.Column="2">
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Style="{StaticResource HztDmaer}" Text="升級需要修為"></TextBlock>
                                    <TextBlock Style="{StaticResource HztDmaer}" Text="{Binding DmyikbmfDeb,Converter={StaticResource DyakmdgwuTlaukxbo}}"></TextBlock>
                                </StackPanel>
                            </Grid>
                            <Grid Grid.Column="3">
                                <RepeatButton Margin="10,10,10,10" Content="升級" Click="HzmzKgeu_OnClick"></RepeatButton>
                            </Grid>
                            <Grid Grid.Column="4">
                                <Button Margin="10,10,10,10" Content="點擊" Click="DlsuqHmopxh_OnClick"></Button>
                            </Grid>
                        </Grid>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>

點擊添加技能

現在有了值,可以添加一個新的技能,這個技能就是點擊添加新的技能。

添加技能這個技能是不需要升級的,所以存在一個值告訴界面,當前這個技能是不需要升級的,而且沒有當前值,所以這個類不能繼承 DexqurhctSjyfozae 。但是可以從另一個方面去做,本來添加技能就是升級,所以當前的值就是升級的值。所以這個類只需要繼承技能基類。

創建一個類 KdlunmmHhrs ,這個類是添加技能

    class KdlunmmHhrs : DexqurhctSjyfozae
    {
        public override void DqqTsb()
        {

        }
    }

點擊升級的時候就添加新的技能,所以需要一個技能工廠類,這個類用來創建技能

所以創建一個類 TeddtHlhkgt 是工廠類,創建各種技能,因為技能很多,所以需要具體技能的工廠類,這個基類是 SbjHoeb ,通過這個類就可以創建技能,所以可以看到這個類的代碼可以這樣寫

    class TeddtHlhkgt
    {
        public TeddtHlhkgt(IDfeppzyTmofs smktuoiznSobrf)
        {
            SmktuoiznSobrf = smktuoiznSobrf;
        }

        public List<SbjHoeb> DpwHoulmqbx { set; get; } = new List<SbjHoeb>();

        public IDfeppzyTmofs SmktuoiznSobrf { get; }

        public DexqurhctSjyfozae StdshakHngld()
        {
            return DpwHoulmqbx[ran.Next(DpwHoulmqbx.Count)].StdshakHngld(SmktuoiznSobrf);
        }

        private static Random ran = new Random();
    }
    internal abstract class SbjHoeb
    {
        public abstract DexqurhctSjyfozae StdshakHngld(IDfeppzyTmofs donufyqgfKfnazhrcg);
    }

因為很多類都需要傳入 IDfeppzyTmofs 人物類,所以就需要在函數添加參數,在使用的時候輸入。

然後創建添加修為的工廠類 SdmqokThd 這個類返回技能

   class SdmqokThd : SbjHoeb
    {
        public override DexqurhctSjyfozae StdshakHngld(IDfeppzyTmofs donufyqgfKfnazhrcg)
        {
            return new HisjfnnzSqsbtuuqq(donufyqgfKfnazhrcg);
        }
    }

但是現在的添加技能類還沒有添加技能,因為技能的屬性在他的上面,他拿不到,所以只能使用構造函數傳入

    internal class KdlunmmHhrs : DexqurhctSjyfozae
    {
        public KdlunmmHhrs(ObservableCollection<DexqurhctSjyfozae> dexqurhctSjyfozae, IDfeppzyTmofs tdheituHnks)
        {
            DexqurhctSjyfozae = dexqurhctSjyfozae;
            TdheituHnks = tdheituHnks;

             HnukhltvKfdrpokjz = "點擊添加技能";
            DfacHbl = new TeddtHlhkgt(tdheituHnks);
            DmyikbmfDeb = 100;
        }

        public override void DqqTsb()
        {
            DklvubnuiTeqch = DklvubnuiTeqch + 1;

            DexqurhctSjyfozae.Add(DfacHbl.StdshakHngld());
        }

        private ObservableCollection<DexqurhctSjyfozae> DexqurhctSjyfozae { get; }

        private IDfeppzyTmofs TdheituHnks { get; }

        private TeddtHlhkgt DfacHbl { get; }
    }

可以看到,技能類都需要在構造添加 DmyikbmfDeb 升級需要的修為,在點擊升級 DqqTsb 添加當前值 DklvubnuiTeqch ,但是這個值不是每次都添加1。先添加這個技能來看一下

打開 HnlcDbtdhsdjModel ,在跳轉時,創建 KdlunmmHhrs ,然後添加到技能

       public override void OnNavigatedTo(object sender, object obj)
        {
            KppnuhKxkpxdee = new TdsumTzwok();
            var hisjfnnzSqsbtuuqq = new HisjfnnzSqsbtuuqq(KppnuhKxkpxdee);

            DexqurhctSjyfozae = new ObservableCollection<DexqurhctSjyfozae>()
            {
                hisjfnnzSqsbtuuqq,
            };

            var kdlunmmHhrs = new KdlunmmHhrs(DexqurhctSjyfozae, KppnuhKxkpxdee);
            DexqurhctSjyfozae.Add(kdlunmmHhrs);
        }

現在可以看到,添加技能這個存在點擊按鈕,但是不需要點擊,只有升級。所以如何修改?下麵來告訴大家使用列表模板

實際在win10 uwp 列表模板選擇器已經有告訴大家如何寫了,所以這裡只是很簡單告訴大家,這裡的代碼需要如何寫

先創建一個類 DyqbdpreKuoujeq ,這個類就是選擇不同的數據

    public class DyqbdpreKuoujeq : DataTemplateSelector
    {
        public override DataTemplate SelectTemplate(object item, DependencyObject container)
        {
            return base.SelectTemplate(item, container);
        }
    }

因為存在很多技能,所以只能創建技能的類來添加判斷,創建類 TuikyyDikvqp ,這個類判斷當前是什麼技能,能否應用。

    public abstract class TuikyyDikvqp
    {
        public abstract bool KwxvrmxDhzyozzwx(object hflozThhgjas);

        public DataTemplate TnhvrarvlDaz { get; set; }
    }

這個類有兩個函數,函數 KwxvrmxDhzyozzwx 就是判斷當前輸入的數據是否可以使用這個類的 TnhvrarvlDaz ,因為現在不需要排序,所以就不需要添加優先順序。

這個類的 TnhvrarvlDaz 就是,如果輸入的數據可以使用,那麼就使用這個類的 TnhvrarvlDaz 。這個屬性的值是在界面創建,不能在後臺創建。

下麵添加 DyqbdpreKuoujeq 一個列表,判斷當前輸入的數據是否在哪個列表,如果是返回

    public class DyqbdpreKuoujeq : DataTemplateSelector
    {
        public List<TuikyyDikvqp> TuikyyDikvqps { get; } = new List<TuikyyDikvqp>();

        public override DataTemplate SelectTemplate(object item, DependencyObject container)
        {
            var tuikyyDikvqp = TuikyyDikvqps.FirstOrDefault(temp=>temp.KwxvrmxDhzyozzwx(item));
            if (tuikyyDikvqp != null)
            {
                return tuikyyDikvqp.TnhvrarvlDaz;
            }
            return base.SelectTemplate(item, container);
        }
    }

一般都是判斷如果沒有符合的,就返回定義的一個值,但是這裡因為不需要這樣寫。

創建一個用於點擊的界面 TxvigDixcee

    public class TxvigDixcee : TuikyyDikvqp
    {
        public override bool KwxvrmxDhzyozzwx(object hflozThhgjas)
        {
            return hflozThhgjas is IKdgvtziaSfs;
        }
    }

那麼如何在界面使用,請看下麵

  <Page.Resources>
        <local:DyqbdpreKuoujeq x:Key="Kuoujeq">
            <local:DyqbdpreKuoujeq.TuikyyDikvqps>
                <local:TxvigDixcee>
                    <local:TxvigDixcee.TnhvrarvlDaz>
                        <DataTemplate DataType="tpwlxnpDfyecpeoh:DexqurhctSjyfozae">
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="5*"></ColumnDefinition>
                                    <ColumnDefinition Width="1*"></ColumnDefinition>
                                    <ColumnDefinition Width="1*"></ColumnDefinition>
                                    <ColumnDefinition Width="1*"></ColumnDefinition>
                                    <ColumnDefinition Width="1*"></ColumnDefinition>
                                </Grid.ColumnDefinitions>
                                <Grid>
                                    <TextBlock Style="{StaticResource HztDmaer}" Text="{Binding HnukhltvKfdrpokjz}"></TextBlock>
                                </Grid>
                                <Grid Grid.Column="1">
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Style="{StaticResource HztDmaer}" Text="當前的值"></TextBlock>
                                        <TextBlock Style="{StaticResource HztDmaer}" Text="{Binding DklvubnuiTeqch,Converter={StaticResource DyakmdgwuTlaukxbo}}"></TextBlock>
                                    </StackPanel>
                                </Grid>
                                <Grid Grid.Column="2">
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Style="{StaticResource HztDmaer}" Text="升級需要修為"></TextBlock>
                                        <TextBlock Style="{StaticResource HztDmaer}" Text="{Binding DmyikbmfDeb,Converter={StaticResource DyakmdgwuTlaukxbo}}"></TextBlock>
                                    </StackPanel>
                                </Grid>
                                <Grid Grid.Column="3">
                                    <RepeatButton Margin="10,10,10,10" Content="升級" Click="HzmzKgeu_OnClick"></RepeatButton>
                                </Grid>
                                <Grid Grid.Column="4">
                                    <Button Margin="10,10,10,10" Content="點擊" Click="DlsuqHmopxh_OnClick"></Button>
                                </Grid>
                            </Grid>
                        </DataTemplate>
                    </local:TxvigDixcee.TnhvrarvlDaz>
                </local:TxvigDixcee>
            </local:DyqbdpreKuoujeq.TuikyyDikvqps>
        </local:DyqbdpreKuoujeq>
    </Page.Resources>

添加一個添加技能 ThhlqolHdhkja ,先創建一個類

    public class ThhlqolHdhkja : TuikyyDikvqp
    {
        public override bool KwxvrmxDhzyozzwx(object hflozThhgjas)
        {
            return hflozThhgjas is KdlunmmHhrs;
        }
    }

因為技能數是整數,所以創建一個轉換

    public class SnlSlejfmnfk : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value is double kbjjDzn)
            {
                return ((int)kbjjDzn).ToString();
            }

            return "";
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

添加界面,需要寫新的界面,一般都是在一個假的界面寫列表,複製到這裡,直接寫是看不到界面

       <local:ThhlqolHdhkja>
                    <local:ThhlqolHdhkja.TnhvrarvlDaz>
                        <DataTemplate DataType="tpwlxnpDfyecpeoh:DexqurhctSjyfozae">
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="5*"></ColumnDefinition>
                                    <ColumnDefinition Width="1*"></ColumnDefinition>
                                    <ColumnDefinition Width="1*"></ColumnDefinition>
                                    <ColumnDefinition Width="1*"></ColumnDefinition>
                                </Grid.ColumnDefinitions>
                                <Grid>
                                    <TextBlock Style="{StaticResource HztDmaer}" Text="{Binding HnukhltvKfdrpokjz}"></TextBlock>
                                </Grid>
                                <Grid Grid.Column="1">
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Style="{StaticResource HztDmaer}" Text="技能"></TextBlock>
                                        <TextBlock Style="{StaticResource HztDmaer}" Text="{Binding DklvubnuiTeqch,Converter={StaticResource SnlSlejfmnfk}}"></TextBlock>
                                    </StackPanel>
                                </Grid>
                                <Grid Grid.Column="2">
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Style="{StaticResource HztDmaer}" Text="需要修為"></TextBlock>
                                        <TextBlock Style="{StaticResource HztDmaer}" Text="{Binding DmyikbmfDeb,Converter={StaticResource SnlSlejfmnfk}}"></TextBlock>
                                    </StackPanel>
                                </Grid>
                                <Grid Grid.Column="3">
                                    <RepeatButton Margin="10,10,10,10" Content="添加技能" Click="HzmzKgeu_OnClick"></RepeatButton>
                                </Grid>
                            </Grid>
                        </DataTemplate>
                    </local:ThhlqolHdhkja.TnhvrarvlDaz>
                </local:ThhlqolHdhkja>

現在的界面代碼

<Page x:Class="TpwlxnpDfyecpeoh.View.HnlcDbtdhsdjPage"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      xmlns:local="clr-namespace:TpwlxnpDfyecpeoh.View"
      xmlns:viewModel="clr-namespace:TpwlxnpDfyecpeoh.ViewModel"
      xmlns:tpwlxnpDfyecpeoh="clr-namespace:TpwlxnpDfyecpeoh"
      mc:Ignorable="d" 
      d:DesignHeight="600" d:DesignWidth="1000"
      Title="HnlcDbtdhsdjPage">
    <Page.Resources>
        <Style x:Key="HztDmaer" TargetType="TextBlock">
            <Setter Property="Margin" Value="10,10,10,10"></Setter>
        </Style>
        <local:DyakmdgwuTlaukxbo x:Key="DyakmdgwuTlaukxbo"></local:DyakmdgwuTlaukxbo>
        <local:SnlSlejfmnfk x:Key="SnlSlejfmnfk"></local:SnlSlejfmnfk>

        <local:DyqbdpreKuoujeq x:Key="Kuoujeq">
            <local:DyqbdpreKuoujeq.TuikyyDikvqps>
                <local:TxvigDixcee>
                    <local:TxvigDixcee.TnhvrarvlDaz>
                        <DataTemplate DataType="tpwlxnpDfyecpeoh:DexqurhctSjyfozae">
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="5*"></ColumnDefinition>
                                    <ColumnDefinition Width="1*"></ColumnDefinition>
                                    <ColumnDefinition Width="1*"></ColumnDefinition>
                                    <ColumnDefinition Width="1*"></ColumnDefinition>
                                    <ColumnDefinition Width="1*"></ColumnDefinition>
                                </Grid.ColumnDefinitions>
                                <Grid>
                                    <TextBlock Style="{StaticResource HztDmaer}" Text="{Binding HnukhltvKfdrpokjz}"></TextBlock>
                                </Grid>
                                <Grid Grid.Column="1">
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Style="{StaticResource HztDmaer}" Text="當前的值"></TextBlock>
                                        <TextBlock Style="{StaticResource HztDmaer}" Text="{Binding DklvubnuiTeqch,Converter={StaticResource DyakmdgwuTlaukxbo}}"></TextBlock>
                                    </StackPanel>
                                </Grid>
                                <Grid Grid.Column="2">
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Style="{StaticResource HztDmaer}" Text="升級需要修為"></TextBlock>
                                        <TextBlock Style="{StaticResource HztDmaer}" Text="{Binding DmyikbmfDeb,Converter={StaticResource DyakmdgwuTlaukxbo}}"></TextBlock>
                                    </StackPanel>
                                </Grid>
                                <Grid Grid.Column="3">
                                    <RepeatButton Margin="10,10,10,10" Content="升級" Click="HzmzKgeu_OnClick"></RepeatButton>
                                </Grid>
                                <Grid Grid.Column="4">
                                    <Button Margin="10,10,10,10" Content="點擊" Click="DlsuqHmopxh_OnClick"></Button>
                                </Grid>
                            </Grid>
                        </DataTemplate>
                    </local:TxvigDixcee.TnhvrarvlDaz>
                </local:TxvigDixcee>
                <local:ThhlqolHdhkja>
                    <local:ThhlqolHdhkja.TnhvrarvlDaz>
                        <DataTemplate DataType="tpwlxnpDfyecpeoh:DexqurhctSjyfozae">
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="5*"></ColumnDefinition>
                                    <ColumnDefinition Width="1*"></ColumnDefinition>
                                    <ColumnDefinition Width="1*"></ColumnDefinition>
                                    <ColumnDefinition Width="1*"></ColumnDefinition>
                                </Grid.ColumnDefinitions>
                                <Grid>
                                    <TextBlock Style="{StaticResource HztDmaer}" Text="{Binding HnukhltvKfdrpokjz}"></TextBlock>
                                </Grid>
                                <Grid Grid.Column="1">
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Style="{StaticResource HztDmaer}" Text="技能"></TextBlock>
                                        <TextBlock Style="{StaticResource HztDmaer}" Text="{Binding DklvubnuiTeqch,Converter={StaticResource SnlSlejfmnfk}}"></TextBlock>
                                    </StackPanel>
                                </Grid>
                                <Grid Grid.Column="2">
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Style="{StaticResource HztDmaer}" Text="需要修為"></TextBlock>
                                        <TextBlock Style="{StaticResource HztDmaer}" Text="{Binding DmyikbmfDeb,Converter={StaticResource SnlSlejfmnfk}}"></TextBlock>
                                    </StackPanel>
                                </Grid>
                                <Grid Grid.Column="3">
                                    <RepeatButton Margin="10,10,10,10" Content="添加技能" Click="HzmzKgeu_OnClick"></RepeatButton>
                                </Grid>
                            </Grid>
                        </DataTemplate>
                    </local:ThhlqolHdhkja.TnhvrarvlDaz>
                </local:ThhlqolHdhkja>
            </local:DyqbdpreKuoujeq.TuikyyDikvqps>
        </local:DyqbdpreKuoujeq>
    </Page.Resources>
    <Grid d:DataContext="{d:DesignInstance viewModel:HnlcDbtdhsdjModel}">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Grid>
            <Grid HorizontalAlignment="Right">
                <StackPanel Margin="10,10,10,10" Orientation="Horizontal">
                    <TextBlock Text="當前修為"></TextBlock>
                    <TextBlock Text="{Binding KppnuhKxkpxdee.KtrKvmvvnj,Mode=OneWay}"></TextBlock>
                </StackPanel>
            </Grid>
        </Grid>
        <Grid Grid.Row="1">
            <ListView ItemsSource="{Binding DexqurhctSjyfozae}" HorizontalAlignment="Stretch"
                      BorderBrush="Transparent" BorderThickness="0"
                      HorizontalContentAlignment="Stretch"
                      ItemTemplateSelector="{StaticResource Kuoujeq}">
                <ListView.ItemContainerStyle>
                    <Style TargetType="ListViewItem">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="{x:Type ListViewItem}">
                                    <Border x:Name="Bd" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
                                        <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                                    </Border>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </ListView.ItemContainerStyle>

            </ListView>
        </Grid>
    </Grid>
</Page>

可以看到,現在的運行就是

添加技能

為了可以添加任意的技能,所以這裡添加一個類用來寫有哪些技能可以添加的,這個類是 KwxTpivzdikn ,裡面有一個屬性用來放技能,不過這個TeddtHlhkgt類實際上有一個方法,在調用就可以返回技能,所以不需要使用上面的代碼。但是存在一些可以傳入的參數,所以還是可以添加一個類

    internal class KwxTpivzdikn
    {
        public KwxTpivzdikn()
        {

        }
        public List<SbjHoeb> DpwHoulmqbx { set; get; } = new List<SbjHoeb>();
    }

這個類主要是創建技能,因為TeddtHlhkgt類會有其他很多代碼,所以就不讓他做這個。

提供修為

先創建一個用於提高修為的技能試試,這個技能是點擊升級只有需要的修為是 1.3-1.5之間。也就是當前需要需要修為 10 ,升級之後就需要 13-15的修為。

class HmsfKjirukoon : SbjHoeb
    {
        public override DexqurhctSjyfozae StdshakHngld(IDfeppzyTmofs donufyqgfKfnazhrcg)
        {

        }
    }

但是還需要創建一個修為技能,這個類可以被修改每次升級的值

internal class KwxTpivzdikn
    {
        public KwxTpivzdikn()
        {
        }

        public List<SbjHoeb> DpwHoulmqbx { set; get; } = new List<SbjHoeb>();
    }

    class HmsfKjirukoon : SbjHoeb
    {
        public override DexqurhctSjyfozae StdshakHngld(IDfeppzyTmofs donufyqgfKfnazhrcg)
        {
            var sisHhmpja = ran.Next(1300, 1500) / 1000.0;
            return new HcaoxbsDpitcsg(donufyqgfKfnazhrcg)
            {
                KimtDvznfc = sisHhmpja
            };
        }
    }

    class HcaoxbsDpitcsg : DexqurhctSjyfozae
    {
        public HcaoxbsDpitcsg(IDfeppzyTmofs dfeppzy)
        {
            Dfeppzy = dfeppzy;

            HnukhltvKfdrpokjz = "點擊添加修為";

            DmyikbmfDeb = 10;

            DklvubnuiTeqch = 1;
        }

        public IDfeppzyTmofs Dfeppzy { get; }

        public double KimtDvznfc { get; set; }

        public override void DqqTsb()
        {
            DmyikbmfDeb *= KimtDvznfc;
            DklvubnuiTeqch += 1;
        }


        public void DdwTynktxyx()
        {
            Dfeppzy.KtrKvmvvnj += (long) Math.Floor(DklvubnuiTeqch);
        }
    }

先試試點擊添加技能會出現的技能,不過需要在點擊的時候添加上面代碼

      public KwxTpivzdikn()
        {
            DpwHoulmqbx.Add(new HmsfKjirukoon());
        }

              public TeddtHlhkgt(IDfeppzyTmofs smktuoiznSobrf)
        {
            SmktuoiznSobrf = smktuoiznSobrf;

            DpwHoulmqbx.AddRange(new KwxTpivzdikn().DpwHoulmqbx);
        }

因為創建了一個新技能,這個在界面是無法顯示,所以需要修改 DyqbdpreKuoujeq ,在找不到對應的界面就打開預設

    public class DyqbdpreKuoujeq : DataTemplateSelector
    {
        public List<TuikyyDikvqp> TuikyyDikvqps { get; } = new List<TuikyyDikvqp>();

        public DataTemplate SheojwpnyHbqnybpa { get; set; }

        public override DataTemplate SelectTemplate(object item, DependencyObject container)
        {
            var tuikyyDikvqp = TuikyyDikvqps.FirstOrDefault(temp=>temp.KwxvrmxDhzyozzwx(item));
            if (tuikyyDikvqp != null)
            {
                return tuikyyDikvqp.TnhvrarvlDaz;
            }

            if (SheojwpnyHbqnybpa != null)
            {
                return SheojwpnyHbqnybpa;
            }

            return base.SelectTemplate(item, container);
        }
    }

打開界面添加下麵代碼

            <local:DyqbdpreKuoujeq.SheojwpnyHbqnybpa>
                <DataTemplate DataType="tpwlxnpDfyecpeoh:DexqurhctSjyfozae">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="5*" />
                            <ColumnDefinition Width="1*" />
                            <ColumnDefinition Width="1*" />
                            <ColumnDefinition Width="1*" />
                            <ColumnDefinition Width="1*" />
                        </Grid.ColumnDefinitions>
                        <Grid>
                            <TextBlock Style="{StaticResource HztDmaer}" Text="{Binding HnukhltvKfdrpokjz}" />
                        </Grid>
                        <Grid Grid.Column="1">
                            <StackPanel Orientation="Horizontal">
                                <TextBlock Style="{StaticResource HztDmaer}" Text="當前的值" />
                                <TextBlock Style="{StaticResource HztDmaer}"
                                           Text="{Binding DklvubnuiTeqch,Converter={StaticResource DyakmdgwuTlaukxbo}}" />
                            </StackPanel>
                        </Grid>
                        <Grid Grid.Column="2">
                            <StackPanel Orientation="Horizontal">
                                <TextBlock Style="{StaticResource HztDmaer}" Text="升級需要修為" />
                                <TextBlock Style="{StaticResource HztDmaer}"
                                           Text="{Binding DmyikbmfDeb,Converter={StaticResource DyakmdgwuTlaukxbo}}" />
                            </StackPanel>
                        </Grid>
                        <Grid Grid.Column="3">
                            <RepeatButton Margin="10,10,10,10" Content="升級" Click="HzmzKgeu_OnClick" />
                        </Grid>
                        <Grid Grid.Column="4">
                            <Button Margin="10,10,10,10" Content="點擊" Click="DlsuqHmopxh_OnClick" />
                        </Grid>
                    </Grid>
                </DataTemplate>
            </local:DyqbdpreKuoujeq.SheojwpnyHbqnybpa>

現在運行一下,可以看到下麵的界面

但是點擊很多次就可以看到界面是點擊添加修為,不知道他的每次點擊可以添加多少,所以修改他的命名

        public override DexqurhctSjyfozae StdshakHngld(IDfeppzyTmofs donufyqgfKfnazhrcg)
        {
            var sisHhmpja = ran.Next(1300, 1500) / 1000.0;
            var kiyKyovife = "點擊添加修為"+sisHhmpja.ToString("N");
            return new HcaoxbsDpitcsg(donufyqgfKfnazhrcg)
            {
                HnukhltvKfdrpokjz = kiyKyovife,
                KimtDvznfc = sisHhmpja
            };
        }

這樣多次點擊添加技能就能找到一個升級需要比較少技能的值

創建.net的共用項目

在過了一個月,我的UWP還是沒有安裝成功,所以我只能使用 WPF 來寫,但是如何把 WPF 寫的直接放在 UWP,一個簡單的方法是創建共用項目,但是還有其他方法。創建 .net standard 項目,不過創建這個需要使用的 WPF 程式是 .net Framework 4.6.2 和以上。

現在創建一個 KnxetfaHjpkymq 的項目,讓 WPF 項目引用他,然後把一些類從 WPF 放在這個項目。

關於.net Framework 對應,請看下麵

4yV.png

其他文章

感謝

感謝 無名圖床 提供圖片上傳

最近我的圖床已經流量用太多了

不過我更新了圖床的界面,現在的界面很好看了

點擊下載

圖床可以用來快速上傳圖片到伺服器,用來寫博客放圖片

我搭建了自己的博客 https://lindexi.gitee.io/ 歡迎大家訪問,裡面有很多新的博客。只有在我看到博客寫成熟之後才會放在csdn或博客園,但是一旦發佈了就不再更新

如果在博客看到有任何不懂的,歡迎交流,我搭建了 dotnet 職業技術學院 歡迎大家加入

原文:win10 uwp 商業游戲 1.2.1 - CSDN博客 博客園只做備份

知識共用許可協議
本作品採用知識共用署名-非商業性使用-相同方式共用 4.0 國際許可協議進行許可。歡迎轉載、使用、重新發佈,但務必保留文章署名林德熙(包含鏈接:http://blog.csdn.net/lindexi_gd ),不得用於商業目的,基於本文修改後的作品務必以相同的許可發佈。如有任何疑問,請與我聯繫


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • lock free ...
  • const 標識符 在c++中作為常量修飾符 用來修飾 函數 變數 指針 const 修飾的變數不可以改變值 const 在修飾指針的時候 const 標識符出現在*的左邊表示 指向的變數為常量不能通過指針去改變該對象的值 叫做常量指針即const int a = 0; const int* ipt ...
  • 坐標南京 211 cs專業 工作經驗算上實習1年多,外包公司,員工各種離職,項目越做越難,工資不漲怒而離職。目前陷入找工作的泥潭,記錄一些知識點的不足來督促自己吧。 2018/5/29 zn公司 : 很棒的公司,環境好,員工都是年輕人,大牛很隨和,問了很多題目,回答上來一部分,還答錯了一部分。 1、 ...
  • 字典的key是一個可哈希的值,字典的value可以是任何值。 keys():返回鍵 values():返回鍵對應的值 items():返回鍵和值 keys遍歷出來 values遍歷出來 items遍歷出來 get():根據key獲取值,key不存在時,可以指定預設值(None) pop() popi ...
  • 本文來告訴大家一個新的技術DirectComposition,在 win7 之後(實際上是 vista),微軟正在考慮一個新的渲染機制 ...
  • 本文告訴大家如何使用 Marshal 做出可以快速釋放記憶體的大數組。 最近在做 3D ,需要不斷申請一段大記憶體數組,然後就釋放他,但是 C# 對於大記憶體不是立刻釋放,所以就存在一定的性能問題。 在博客園看到了一位大神使用 Marshal 做出快速申請的大數組,於是我就學他的方法來弄一個。本文告訴大... ...
  • 如果在 WPF 需要用多進程通信,一個推薦的方法是 WCF ,因為 WCF 是 RPC 計算。先來講下 RPC (Remote Procedure Call) 遠程過程調用,他是通過特定協議,包括 tcp 、http 等對其他進程進行調用的技術 ...
  • 本文實際只是翻譯 .NET Core foundational libraries 官方文檔的編碼風格 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...