0

我在 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;
   }

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

4

1 回答 1

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 类的成员,然后它将可用于您应用程序中的所有页面。

于 2013-06-23T01:48:11.200 回答