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 Server 2008 R2常规安全设置及基本安全策略
- winapi – Windows SDK 7.0的signtool中的signwizard发生了
- Wix:在组件,目录,文件,注册表等上使用KeyPath
- 类共享警告不允许我使用visualVM在本地(Windows)进行配置
- Windows10下docker的启动
- 在Windows / C上加速Redis#
- Atitit webdav 的问题 -------------大文件传输问题 在某些
- DropShadow for WPF无边界窗口
- 如何减少Windows Azure网站上托管的Orchard CMS站点的内存消
- 将PDF文件/对象插入Microsoft Excel时出现“无法插入对象”