分数不起作用,int ++不在标签中递增

时间:2014-02-28 20:31:26

标签: c# silverlight label increment

我有一个计算碰撞的程序。

代码

int eatenAppleCount = 0;

public MainPage()
{
score.Content = "Score" + " " + Convert.ToString(eatenAppleCount);   
}

 for (int indx = myapples.Count - 1; indx >= 0; indx--)
            {
                myapples[indx].Update(LayoutRoot);
                bool collided = DetectCollision(myapples[indx], myPig);
                if (collided)
                {
                    eatenAppleCount ++;
                    RemoveApple(myapples[indx]);
                }
            }

问题是即使在碰撞中得分也只是0。 有人可以帮助我,我不明白为什么它没有增加。

4 个答案:

答案 0 :(得分:2)

你有几个代码片段很难跟上,但我认为你只需要在增量后应用这一行:

score.Content = "Score" + " " + Convert.ToString(eatenAppleCount);

答案 1 :(得分:2)

在消息中显示之前,您需要执行代码来计算eatenAppleCount

您似乎只是使用默认值eatenAppleCount然后计算它。

int eatenAppleCount = 0;

public MainPage()
{

    for (int indx = myapples.Count - 1; indx >= 0; indx--)
    {
        myapples[indx].Update(LayoutRoot);
        bool collided = DetectCollision(myapples[indx], myPig);
        if (collided)
        {
            eatenAppleCount ++;
            RemoveApple(myapples[indx]);
        }
    }

    score.Content = "Score" + " " + Convert.ToString(eatenAppleCount);   

}

答案 2 :(得分:1)

使用变量创建用作内容的字符串不会将该变量链接到内容。当变量发生变化时,它不会影响从前一个值创建的内容。

您需要在变量更改时更新内容。将构造函数中的代码放在方法中,以便您可以从构造函数中调用它,以及何时更新内容。

答案 3 :(得分:0)

您需要将此变量作为参考传递

int eatenAppleCount = 0;

public MainPage()
{
   CollisionDetect(ref eatenAppleCount);
   score.Content = "Score" + " " + Convert.ToString(eatenAppleCount);   
}

protected void CollisionDetect(ref eatenAppleCount)
{
    for (int indx = myapples.Count - 1; indx >= 0; indx--)
    {
         myapples[indx].Update(LayoutRoot);
         bool collided = DetectCollision(myapples[indx], myPig);
         if (collided)
         {
             eatenAppleCount ++;
             RemoveApple(myapples[indx]);
         }
     }        
}