尝试在游戏中加入计时器,使用Visual Studio和c#

本文关键字:使用 Visual Studio 计时器 游戏 | 更新日期: 2023-09-27 18:11:46

我是c#开发的新手,但我正试图为我的孩子编写一个包含计时器的游戏。我使用的是微软Visual Studio社区2015(版本14.0.25431.01更新3)。我使用的是"空白"模板,我的目标是通用Windows,"Windows 10周年纪念版(10.0;建立14393年)"。

主页。xaml,我假设我可以单击工具箱并选择一个"计时器"控件,然后它会出现在下面的代码中,然后我就可以在MainPage.xaml.cs中引用它。

然而,没有"定时器"控件可从"所有XAML控件"列表中选择,当我试图插入"使用系统"时。在mainpage . example .cs中,它似乎无法识别它。

所有我需要的是一个计时器开始"滴答"当开始按钮被按下,并允许输入一个固定的秒数之前"计时"和移动到下一个问题。

任何指示将非常感激收到!

尝试在游戏中加入计时器,使用Visual Studio和c#

听起来你习惯在WinForms或VB6的拖放界面中编程…为了完成你所描述的,你需要在你的XAML中有一个按钮和一个输入控件,然后计时器将驻留在代码后面(或者如果你遵循MVVM,那么它将驻留在视图模型中)。它的简单实现如下:

MainPage.xaml

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition></RowDefinition>
        <RowDefinition></RowDefinition>
        <RowDefinition></RowDefinition>
    </Grid.RowDefinitions>
    <Button Grid.Row="0" x:Name="StartButton" HorizontalAlignment="Stretch" Content="Start" Click="StartButton_Click" />
    <TextBox Grid.Row="1" x:Name="InputField" HorizontalAlignment="Stretch" ></TextBox>
    <TextBlock Grid.Row="2" x:Name="StatusText" HorizontalAlignment="Stretch"></TextBlock>
</Grid>

MainPage.xaml.cs

using System.Threading;
using Window.UI.Xaml;
using Window.UI.Xaml.Controls;
namespace UniversalTimerApp
{
    public sealed partial class MainPage : Page
    {
        private Timer questionTimer;
        public MainPage()
        {
            this.InitializeComponent();
            this.questionTimer = new Timer(this.EndOfTimer, null, Timeout.Infinite, Timeout.Infinite);
        }
        private void StartButton_Click(object sender, RoutedEventArgs e)
        {
            this.questionTimer.Change(3000, Timeout.Infinite);
            this.StatusText.Text = "Timer Started!";
        }
        private async void EndOfTimer(object state)
        {
            await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
            {
                this.InputField.IsEnabled = false;
                this.StatusText.Text = "Timer Ended.";
            });
        }
    }
}