我有一个计算碰撞的程序。
代码
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。 有人可以帮助我,我不明白为什么它没有增加。
答案 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]);
}
}
}