win10 uwp 商业游戏 1.2.1
|
上一个游戏已经告诉大家如何写多个游戏,现在继续写这个无聊的游戏 希望大家在看这篇文章之前先看 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,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" Content="升级" Click="HzmzKgeu_OnClick"></RepeatButton>
</Grid>
<Grid Grid.Column="4">
<Button Margin="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 列表模板选择器已经有告诉大家如何写了,所以这里只是很简单告诉大家,这里的代码需要如何写 (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows – Win32:窗口在整个生命周期内都有相同
- windows-7 – 无法完成操作,因为文件夹或其中的文
- Windows – LogonUser – 来自系统服务的CreateP
- row_number()在hql中的分区
- .net – System.Windows.Forms.WebBrowser:强制
- windows-8 – 地铁样式Windows 8应用程序是否支持
- windows – 如何使用Win32 API获取多个监视器的显
- windows-mobile – Visual Studio 2010 Professi
- windows-phone-8 – Nokia Imaging SDK是否有硬件
- HM NIS Edit打包Electron应用的注意事项
