win10 uwp 商业游戏 1.2.1 修改数值点击添加技能添加技能创建.net的共用项目其他文章感谢

2018-09-18 17:54:58 浏览数 (1)

上一个游戏已经告诉大家如何写多个游戏,现在继续写这个无聊的游戏。

希望大家在看这篇文章之前先看 win10 uwp 商业游戏,在这个文章告诉了大家如何创建游戏。

修改数值

可以从上一篇的博客的游戏看到升级太简单,所以需要在点击升级点击的时候,下次升级需要的添加

写法很简单,请看下面

代码语言:javascript复制
      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);
        }
    }

但是可以看到界面显示的小数点,需要只显示两位,可以使用转换,请看下面

代码语言:javascript复制
    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();
        }
    }
代码语言:javascript复制
        <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 ,这个类是添加技能

代码语言:javascript复制
    class KdlunmmHhrs : DexqurhctSjyfozae
    {
        public override void DqqTsb()
        {

        }
    }

点击升级的时候就添加新的技能,所以需要一个技能工厂类,这个类用来创建技能

所以创建一个类 TeddtHlhkgt 是工厂类,创建各种技能,因为技能很多,所以需要具体技能的工厂类,这个基类是 SbjHoeb ,通过这个类就可以创建技能,所以可以看到这个类的代码可以这样写

代码语言:javascript复制
    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();
    }
代码语言:javascript复制
    internal abstract class SbjHoeb
    {
        public abstract DexqurhctSjyfozae StdshakHngld(IDfeppzyTmofs donufyqgfKfnazhrcg);
    }

因为很多类都需要传入 IDfeppzyTmofs 人物类,所以就需要在函数添加参数,在使用的时候输入。

然后创建添加修为的工厂类 SdmqokThd 这个类返回技能

代码语言:javascript复制
   class SdmqokThd : SbjHoeb
    {
        public override DexqurhctSjyfozae StdshakHngld(IDfeppzyTmofs donufyqgfKfnazhrcg)
        {
            return new HisjfnnzSqsbtuuqq(donufyqgfKfnazhrcg);
        }
    }

但是现在的添加技能类还没有添加技能,因为技能的属性在他的上面,他拿不到,所以只能使用构造函数传入

代码语言:javascript复制
    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 ,然后添加到技能

代码语言:javascript复制
       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 ,这个类就是选择不同的数据

代码语言:javascript复制
    public class DyqbdpreKuoujeq : DataTemplateSelector
    {
        public override DataTemplate SelectTemplate(object item, DependencyObject container)
        {
            return base.SelectTemplate(item, container);
        }
    }

因为存在很多技能,所以只能创建技能的类来添加判断,创建类 TuikyyDikvqp ,这个类判断当前是什么技能,能否应用。

代码语言:javascript复制
    public abstract class TuikyyDikvqp
    {
        public abstract bool KwxvrmxDhzyozzwx(object hflozThhgjas);

        public DataTemplate TnhvrarvlDaz { get; set; }
    }

这个类有两个函数,函数 KwxvrmxDhzyozzwx 就是判断当前输入的数据是否可以使用这个类的 TnhvrarvlDaz ,因为现在不需要排序,所以就不需要添加优先级。

这个类的 TnhvrarvlDaz 就是,如果输入的数据可以使用,那么就使用这个类的 TnhvrarvlDaz 。这个属性的值是在界面创建,不能在后台创建。

下面添加 DyqbdpreKuoujeq 一个列表,判断当前输入的数据是否在哪个列表,如果是返回

代码语言:javascript复制
    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

代码语言:javascript复制
    public class TxvigDixcee : TuikyyDikvqp
    {
        public override bool KwxvrmxDhzyozzwx(object hflozThhgjas)
        {
            return hflozThhgjas is IKdgvtziaSfs;
        }
    }

那么如何在界面使用,请看下面

代码语言:javascript复制
  <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 ,先创建一个类

代码语言:javascript复制
    public class ThhlqolHdhkja : TuikyyDikvqp
    {
        public override bool KwxvrmxDhzyozzwx(object hflozThhgjas)
        {
            return hflozThhgjas is KdlunmmHhrs;
        }
    }

因为技能数是整数,所以创建一个转换

代码语言:javascript复制
    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();
        }
    }

添加界面,需要写新的界面,一般都是在一个假的界面写列表,复制到这里,直接写是看不到界面

代码语言:javascript复制
       <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>

现在的界面代码

代码语言:javascript复制
<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类实际上有一个方法,在调用就可以返回技能,所以不需要使用上面的代码。但是存在一些可以传入的参数,所以还是可以添加一个类

代码语言:javascript复制
    internal class KwxTpivzdikn
    {
        public KwxTpivzdikn()
        {

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

这个类主要是创建技能,因为TeddtHlhkgt类会有其他很多代码,所以就不让他做这个。

提供修为

先创建一个用于提高修为的技能试试,这个技能是点击升级只有需要的修为是 1.3-1.5之间。也就是当前需要需要修为 10 ,升级之后就需要 13-15的修为。

代码语言:javascript复制
class HmsfKjirukoon : SbjHoeb
    {
        public override DexqurhctSjyfozae StdshakHngld(IDfeppzyTmofs donufyqgfKfnazhrcg)
        {

        }
    }

但是还需要创建一个修为技能,这个类可以被修改每次升级的值

代码语言:javascript复制
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);
        }
    }

先试试点击添加技能会出现的技能,不过需要在点击的时候添加上面代码

代码语言:javascript复制
      public KwxTpivzdikn()
        {
            DpwHoulmqbx.Add(new HmsfKjirukoon());
        }

              public TeddtHlhkgt(IDfeppzyTmofs smktuoiznSobrf)
        {
            SmktuoiznSobrf = smktuoiznSobrf;

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

因为创建了一个新技能,这个在界面是无法显示,所以需要修改 DyqbdpreKuoujeq ,在找不到对应的界面就打开默认

代码语言:javascript复制
    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);
        }
    }

打开界面添加下面代码

代码语言:javascript复制
            <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>

现在运行一下,可以看到下面的界面

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

代码语言:javascript复制
        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 对应,请看下面

其他文章

  • win10 uwp 商业游戏
  • win10 uwp 商业游戏 1.1.5

感谢

感谢 无名图床 提供图片上传

最近我的图床已经流量用太多了

不过我更新了图床的界面,现在的界面很好看了

点击下载

图床可以用来快速上传图片到服务器,用来写博客放图片


0 人点赞