0
因此,我有一个3x3的文本字段网格,旨在显示3个最佳分数以及自从游戏启动以来获得的单圈时间和carHealths,并且如果获得更好的分数,现在的排行榜中的成绩就是新的成绩,圈速和carHealth取代了原来的成绩,并将其下的所有成绩都降低了一分。存储排名前3的分数
问题是它只是取代最高分,即使它是一个更糟糕的分数,如果只剩下其他2个点不变。我是否错过了一些非常明显的东西,或者我是否会发现这一切都是错的?
function leaderBoard(): void
{
if (score < scoreArray[2])
{
return
}
if (score > scoreArray[0])
{
scoreArray.unshift(score);
lapTimerArray.unshift(lapTimer.currentCount);
carHealthArray.unshift(carHealth);
scoreArray.pop()
lapTimerArray.pop()
carHealthArray.pop()
}
else if (score > scoreArray[1])
{
scoreArray.splice(1, 0, score);
lapTimerArray.splice(1, 0, lapTimer.currentCount);
carHealthArray.splice(1, 0, carHealth);
scoreArray.pop();
lapTimerArray.pop();
carHealthArray.pop();
}
else if (score > scoreArray[2])
{
scoreArray.pop();
lapTimerArray.pop();
carHealthArray.pop();
scoreArray.append(score);
lapTimerArray.append(lapTimer.currentCount);
carHealthArray.append(carHealth);
}
}
如果我正确理解你的问题,也许问题从你的使用率茎'else if',而不是单独做'if'。目前,如果您的'scorearray'中的第一项小于'score',则您执行代码。其他条款只有在条件失败时才能被触发,所以只有在score scoreArray [1]。 –
DodgerThud
所以我试图让他们所有如果陈述,但随后所有三行显示相同的分数,并在同一时间被取代。我也尝试在每个if语句的底部添加回车,但是只有第一个是替换,其他的不管分数如何都不会改变。 – Jester