上一個游戲已經告訴大家如何寫多個游戲,現在繼續寫這個無聊的游戲 ...
上一個游戲已經告訴大家如何寫多個游戲,現在繼續寫這個無聊的游戲
希望大家在看這篇文章之前先看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 對應,請看下麵
其他文章
感謝
感謝 無名圖床 提供圖片上傳
最近我的圖床已經流量用太多了
不過我更新了圖床的界面,現在的界面很好看了
圖床可以用來快速上傳圖片到伺服器,用來寫博客放圖片
我搭建了自己的博客 https://lindexi.gitee.io/ 歡迎大家訪問,裡面有很多新的博客。只有在我看到博客寫成熟之後才會放在csdn或博客園,但是一旦發佈了就不再更新
如果在博客看到有任何不懂的,歡迎交流,我搭建了 dotnet 職業技術學院 歡迎大家加入
原文:win10 uwp 商業游戲 1.2.1 - CSDN博客 博客園只做備份
本作品採用知識共用署名-非商業性使用-相同方式共用 4.0 國際許可協議進行許可。歡迎轉載、使用、重新發佈,但務必保留文章署名林德熙(包含鏈接:http://blog.csdn.net/lindexi_gd ),不得用於商業目的,基於本文修改後的作品務必以相同的許可發佈。如有任何疑問,請與我聯繫