数学:当关卡数量不受限制时,为关卡资产创建查找 table

Math: Create lookup table for level assets when unlimited amount of levels

我正在制作一款游戏,我计划拥有无限数量的关卡。从图形上看,游戏有 20 个不同的关卡/资产,之后它再次从头开始,但分数和关卡数量仍然增加。

目前我只是查找其中的逻辑是...

if(gameLevel < 2){
    // set up assets for relevant levels
} else if(gameLevel< 5){
    // set up assets for relevant levels
} else if(gameLevel< 10){
    // set up assets for relevant levels
} else if(gameLevel< 15){
    // set up assets for relevant levels
}

我希望游戏在第 21 - 24 关使用第 1 - 4 关的资产,并在第 25 - 29 关使用第 5 - 9 关的资产,依此类推。但这需要在无限的基础上发生,因此需要数学方程式而不是简单的查找 table.

认为我必须使用一些模运算,但到目前为止对我来说还不明显。

使用模数 20。模数假定您从 0 开始,因此由于我们的级别编号为 1-20(而不是 0-19),我们需要为此进行调整:

/* Returns the base level (1-20). */
int baseLevel(int level) {
    int noOfLevels = 20;  // You probably have this as a constant value in your code.
    return (level - 1) % noOfLevels + 1;
}

您的 if 语句将变为:

if(baseLevel(gameLevel) < 2){
    // set up assets for relevant levels
} else if(baseLevel(gameLevel) < 5){
    // set up assets for relevant levels
} else if(baseLevel(gameLevel) < 10){
    // set up assets for relevant levels
} else if(baseLevel(gameLevel) < 15){
    // set up assets for relevant levels
}