title author date CreateTime categories
win10 uwp 商业游戏 1.2.1
lindexi
2018-08-10 19:16:50 +0800
2018-2-13 17:23:3 +0800
Win10 UWP

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

希望大家在看这篇文章之前先看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 对应,请看下面

其他文章

感谢

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

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

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

点击下载

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

2018-8-10-win10-uwp-商业游戏-1.2.1的更多相关文章

  1. win10 uwp 商业游戏 1.2.1

    上一个游戏已经告诉大家如何写多个游戏,现在继续写这个无聊的游戏 希望大家在看这篇文章之前先看win10 uwp 商业游戏,在这个文章告诉了大家如何创建游戏. 修改数值 可以从上一篇的博客的游戏看到升级 ...

  2. win10 uwp 商业游戏

    本文告诉大家去做一个商业游戏,游戏很简单,几乎没有什么技术 游戏的开始,需要添加框架库,于是引用我自己写的库. 首先是创建一个启动页面,这个页面是显示启动的. 在显示启动的时候,是需要加载游戏需要使用 ...

  3. win10 uwp 商业游戏 1.1.5

    本文是在win10 uwp 商业游戏 基础上继续开发,添加一些无聊的游戏 因为在发布几个月,下载量很少,小伙伴说游戏就玩不到几分钟就不想玩,于是我就想加入其他游戏 下面我来告诉大家如何在游戏中添加多个 ...

  4. win10 uwp 萤火虫效果

    原文:win10 uwp 萤火虫效果 本文在Nukepayload2指导下,使用他的思想用C#写出来. 本文告诉大家,如何使用 win2d 做出萤火虫效果. 安装 win2d 安装win2d的方法请使 ...

  5. win10 uwp 使用 Microsoft.Graph 发送邮件

    在 2018 年 10 月 13 号参加了 张队长 的 Office 365 训练营 学习如何开发 Office 365 插件和 OAuth 2.0 开发,于是我就使用 UWP 尝试使用 Micros ...

  6. win10 uwp 列表模板选择器

    本文主要讲ListView等列表可以根据内容不同,使用不同模板的列表模板选择器,DataTemplateSelector. 如果在 UWP 需要定义某些列的显示和其他列不同,或者某些行的显示和其他行不 ...

  7. win10 uwp MVVM 轻量框架

    如果在开发过程,遇到多个页面之间,需要传输信息,那么可能遇到设计的问题.如果因为一个页面内包含多个子页面和多个子页面之间的通信问题找不到一个好的解决方法,那么请看本文.如果因为ViewModel代码越 ...

  8. win10 uwp 获得元素绝对坐标

    有时候需要获得一个元素,相对窗口的坐标,在修改他的位置可以使用. 那么 UWP 如何获得元素坐标? 我提供了一个方法,可以获得元素的坐标. 首先需要获得元素,如果没有获得元素,那么如何得到他的坐标? ...

  9. win10 uwp 毛玻璃

    毛玻璃在UWP很简单,不会和WPF那样伤性能. 本文告诉大家,如何在 UWP 使用 win2d 做毛玻璃. 毛玻璃可以使用 win2D 方法,也可以使用 Compositor . 使用 win2d 得 ...

  10. win10 uwp 读取保存WriteableBitmap 、BitmapImage

    我们在UWP,经常使用的图片,数据结构就是 BitmapImage 和 WriteableBitmap.关于 BitmapImage 和 WriteableBitmap 区别,我就不在这里说.主要说的 ...

随机推荐

  1. 【JZOJ3852】【NOIP2014八校联考第2场第2试9.28】单词接龙(words)

    DDD Bsny从字典挑出N个单词,并设计了接龙游戏,只要一个单词的最后两个字母和另一个单词的前两个字母相同,那么这两个单词就可以有序的连接起来. Bsny想要知道在所给的所有单词中能否按照上述方式接 ...

  2. DAY1-作业

    Python-day1-------> 本节内容: Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据 ...

  3. Intellij IDEA设置忽略部分类编译错误

    有些时候我们的项目中有些错误,但这些错误并不影响项目的整体运行(或许是没有使用到),默认情况下idea是无法通过编译的,因此也就无法部署运行,要达到正确运行项目的目的需要作一些设置才行. 设置Inte ...

  4. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十四章:曲面细分阶段

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十四章:曲面细分阶段 代码工程地址: https://github. ...

  5. jq获取浏览器可视窗口的高度

    <script> var window_height = $(window).height(); </script>

  6. 直击 KubeCon 2019 现场,阿里云 Hands-on Workshop 亮点回顾

    2019 年 6 月 24 日,KubeCon + CloudNativeCon 第二次在中国举办.此次大会阿里共有 26 个技术演讲入选,并有两场沙龙活动,阿里云专家也与技术极客们也再次相聚.Kub ...

  7. POJ2663 Tri Tiling

    思路: 设a[i]为N=i时的方法数.i为奇数的时候肯定为0. 如果i为偶数,a[i]可以看成a[i-2]加上两个单位组成的,此时多出来的2单位有3种方法. 也可以看成a[i-4]加上四个单位组成的, ...

  8. oracle函数 SOUNDEX(c1)

    [功能]返回字符串参数的语音表示形式 [参数]c1,字符型 [返回]字符串 [说明]相对于比较一些读音相同,但是拼写不同的单词是非常有用的. 计算语音的算法: 1.保留字符串首字母,但删除a.e.h. ...

  9. @loj - 2674@ 「NOI2012」美食节

    目录 @description@ @solution@ @accepted code@ @details@ @description@ CZ 市为了欢迎全国各地的同学,特地举办了一场盛大的美食节. 作 ...

  10. 2018-7-29-C#-强转会不会抛出异常

    title author date CreateTime categories C# 强转会不会抛出异常 lindexi 2018-7-29 14:24:1 +0800 2018-4-4 16:24: ...