2018-8-10-win10-uwp-商业游戏-1.2.1
| 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的更多相关文章
- win10 uwp 商业游戏 1.2.1
上一个游戏已经告诉大家如何写多个游戏,现在继续写这个无聊的游戏 希望大家在看这篇文章之前先看win10 uwp 商业游戏,在这个文章告诉了大家如何创建游戏. 修改数值 可以从上一篇的博客的游戏看到升级 ...
- win10 uwp 商业游戏
本文告诉大家去做一个商业游戏,游戏很简单,几乎没有什么技术 游戏的开始,需要添加框架库,于是引用我自己写的库. 首先是创建一个启动页面,这个页面是显示启动的. 在显示启动的时候,是需要加载游戏需要使用 ...
- win10 uwp 商业游戏 1.1.5
本文是在win10 uwp 商业游戏 基础上继续开发,添加一些无聊的游戏 因为在发布几个月,下载量很少,小伙伴说游戏就玩不到几分钟就不想玩,于是我就想加入其他游戏 下面我来告诉大家如何在游戏中添加多个 ...
- win10 uwp 萤火虫效果
原文:win10 uwp 萤火虫效果 本文在Nukepayload2指导下,使用他的思想用C#写出来. 本文告诉大家,如何使用 win2d 做出萤火虫效果. 安装 win2d 安装win2d的方法请使 ...
- win10 uwp 使用 Microsoft.Graph 发送邮件
在 2018 年 10 月 13 号参加了 张队长 的 Office 365 训练营 学习如何开发 Office 365 插件和 OAuth 2.0 开发,于是我就使用 UWP 尝试使用 Micros ...
- win10 uwp 列表模板选择器
本文主要讲ListView等列表可以根据内容不同,使用不同模板的列表模板选择器,DataTemplateSelector. 如果在 UWP 需要定义某些列的显示和其他列不同,或者某些行的显示和其他行不 ...
- win10 uwp MVVM 轻量框架
如果在开发过程,遇到多个页面之间,需要传输信息,那么可能遇到设计的问题.如果因为一个页面内包含多个子页面和多个子页面之间的通信问题找不到一个好的解决方法,那么请看本文.如果因为ViewModel代码越 ...
- win10 uwp 获得元素绝对坐标
有时候需要获得一个元素,相对窗口的坐标,在修改他的位置可以使用. 那么 UWP 如何获得元素坐标? 我提供了一个方法,可以获得元素的坐标. 首先需要获得元素,如果没有获得元素,那么如何得到他的坐标? ...
- win10 uwp 毛玻璃
毛玻璃在UWP很简单,不会和WPF那样伤性能. 本文告诉大家,如何在 UWP 使用 win2d 做毛玻璃. 毛玻璃可以使用 win2D 方法,也可以使用 Compositor . 使用 win2d 得 ...
- win10 uwp 读取保存WriteableBitmap 、BitmapImage
我们在UWP,经常使用的图片,数据结构就是 BitmapImage 和 WriteableBitmap.关于 BitmapImage 和 WriteableBitmap 区别,我就不在这里说.主要说的 ...
随机推荐
- Python编码---转自金角大王
本节内容 编码回顾 编码转换 Python的bytes类型 编码回顾 在备编码相关的课件时,在知乎上看到一段关于Python编码的回答 这哥们的这段话说的太对了,搞Python不把编码彻底搞明白,总有 ...
- Java 和 DynamoDB
https://docs.aws.amazon.com/zh_cn/amazondynamodb/latest/developerguide/GettingStarted.Java.html 官方
- 如何在iPhone 显示一个 星级评分
http://blog.csdn.net/fanjunxi1990/article/details/8663914 由于项目需求,需要做一个列表,里面有各个商品的评分,就是app store里面所有a ...
- Android Binder简介
Android使用Linux的进程管理机制,以进程为单位分配虚拟地址空间.为了安全考虑,Android的不同进程之间是相互隔离的(进程之间被禁止直接交互).如果进程间需要通信,必须通过Android的 ...
- 2013年山东省第四届ACM大学生程序设计竞赛E题:Alice and Bob
题目描述 Alice and Bob like playing games very much.Today, they introduce a new game. There is a polynom ...
- Python基础:00概述
1:续行符 在Python中,一般是一行一个语句.一个过长的语句可以使用反斜杠( \ )分解成几行. 有两种例外情况,一个语句不使用反斜线也可以跨行.在使用闭合操作符时,单一语句可以跨多行,例如:在含 ...
- Header和Cookie相关内容
相信很多同学都对HTTP的header和cookie,和session都有疑问,因为我们开发的时候一般都需要请求网络获取数据,有时候还需要带cookie或者带特殊的字段发起请求. 现在我们就来简单的了 ...
- 「POI2012」约会 Rendezvous
#2691. 「POI2012」约会 Rendezvous 这题我简直不想说什么了,什么素质,卡常数…… “每个顶点有且仅有一条出边”,所以是一道基环树的题,首先tarjan缩点,在缩完点后的图上求a ...
- Android 高仿微信(QQ)滑动弹出编辑、删除菜单效果,增加下拉刷新功能
不可否认,微信.QQ列表的滑动删除.编辑功能着实很经典(从IOS那边模仿过来的),然.Android这边,对列表的操作,其实大多还停留上下文菜单来实现. Android如何实现list item的滑动 ...
- E - Count on a tree 树上第K小
主席树的入门题目,这道题的题意其实就是说,给你一棵树,询问在两个节点之间的路径上的区间第K小 我们如何把树上问题转换为区间问题呢? 其实DFS就可以,我们按照DFS的顺序,对线段树进行建树,那么这个树 ...