首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >存储前3名分数

存储前3名分数
EN

Stack Overflow用户
提问于 2017-08-31 13:59:31
回答 1查看 42关注 0票数 0

所以我有一个3x3的文本字段网格,它的目的是显示3个最好的分数以及自游戏启动以来已经达到的单圈时间和carHealths,如果比当前排行榜中的一个分数更好的分数,那么新的分数,单圈时间和carHealth将替换旧的分数,并将其下方的所有内容向下移动一个。

问题是,它只替换最高分,即使它是一个更糟糕的分数,如果只是保持其他两个位置不变。我是不是漏掉了什么很明显的东西,或者我做错了什么?

代码语言:javascript
运行
复制
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);
    }
}
EN

回答 1

Stack Overflow用户

发布于 2017-08-31 20:54:20

哦,天哪:)如果你突然想要显示前10名的分数,你该怎么办?

这种方法怎么样:将汽车的所有信息存储在一个对象(或类)中,然后按分数对数组进行排序。这样你就不必处理三个独立的数组了(也许你以后会想要给你的汽车添加更多的属性):

代码语言:javascript
运行
复制
var car1:Object = {name:"Car 1", score:100, lapTimer:100, carhealth:50};
var car2:Object = {name:"Car 2", score:1050, lapTimer:100, carhealth:50};
var car3:Object = {name:"Car 3", score:700, lapTimer:100, carhealth:50};

var myCars:Array = [car1, car2, car3];

// Then you probably want to pass your car objects to your cars and modify them from there: car3.score = 400 etc. The car objects can be created dynamically based on how many cars you want

// In the end
function displayScores():void
{
    myCars.sortOn("score"); // sort cars on score property

    // display top 3
    for(i:int = 0, i < 3; i++)
    {
        trace("Place " + (i+1) + " - " + myCars[i].name + ", Score " + myCars[i].score);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45974251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档