从Windows 8游戏c#显示最终得分

时间:2013-06-23 01:06:54

标签: c# windows-8 comparison

我在c#中创建了一个用于Windows 8的游戏,一切都像它应该的那样,但是在用户玩游戏之后,得分显示在文本框中,并且它应该也显示在显示得分的下一个屏幕上文字和竖起图像取决于它的高度。

问题是得分没有结转。我使用的代码从游戏页面获得构造函数然后得分,代码如下:

Var arcade = new arcadeMode();
ScoreNum.text = arcade.score.toString();


//then sample code to display images based on score
if(arcade.score < 100)
   {
      Usermessage.text = "try again.";
      Thumbdown.visibility = visibility.visible;
   }

我认为我的问题实际上是从游戏中获得已保存的分数,因为它必须只是从游戏开始之前获取文本框值。不知道如何在没有数据库的情况下保存得分。关于如何解决这个问题的任何建议?

1 个答案:

答案 0 :(得分:1)

看起来ArcadeMode本质上是您的数据模型,但从游戏页面获取构造函数并没有真正意义。假设你的游戏页面上有一个ArcadeMode的实例并且它包含了实际的分数,并且上面的代码,你刚刚创建了一个全新的同一个类的第二个实例,其分数被初始化为0。

一种快速的方法,因为看起来它只是你要传递的一个简单数据,所以使用Navigate的第二个参数。无论您在哪里导航到大拇指页面,都要将“得分”变量的当前值添加为第二个参数,例如:

Frame.Navigate(typeof(ThumbsUpPage), score)

然后在 ThumbsUpPage OnNavigatedTo事件中,您可以访问通过参数的Parameter属性传递的值,例如:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
   base.OnNavigatedTo(e);
   String score = e.Parameter;
   ...

另一种选择是为ArcadeMode类实例提供更大的范围(即,不要在主页面上使其成为变量)。例如,您可以将其设为App类的成员,然后它将适用于您应用中的所有页面。