菜鸟教程小白 发表于 2022-12-13 03:58:41

ios - 如何计算 RPG 等级进度百分比


                                            <p><p>我正在设计一款 RPG 游戏,用户可以根据 XP 积累经验值 (XP) 并升级。计算当前水平很简单; <code>if else</code> 似乎是最有效的。</p>

<p><strong>我想计算当前关卡的进度百分比。</strong>假设我有 10 个关卡,每个关卡的上限为指数值:</p>

<pre><code>typedef NS_ENUM(NSInteger, RPGLevelCap) {
    RPGLevelCap1=499,
    RPGLevelCap2=1249,
    RPGLevelCap3=2249,
    RPGLevelCap4=3499,
    RPGLevelCap5=4999,
    RPGLevelCap6=6999,
    RPGLevelCap7=9999,
    RPGLevelCap8=14999,
    RPGLevelCap9=19999,
    RPGLevelCap10=19999 // Anything beyond previous level is Lvl 10; display as 100%
};
</code></pre>

<p>根据当前等级计算用户等级进度的有效且易于理解的方法是什么?</p>

<p><code>if else</code> 语句既难以理解也难以维护,但可能相当有效:</p>

<pre><code>float levelProgression=0;

// Calculate level progression as a fraction of 1
if(xp &lt;= RPGLevelCap1)
{
    levelProgression = ((float)xp / RPGLevelCap1);
}
else if (xp &lt;=RPGLevelCap2)
{
    levelProgression = ((float)(xp-RPGLevelCap1) / (RPGLevelCap2-RPGLevelCap1));
}
else if (xp &lt;=RPGLevelCap3)
{
    levelProgression = ((float)(xp-RPGLevelCap2) / (RPGLevelCap3-RPGLevelCap2));
}

...

else if (xp&gt;RPGLevelCap10)
{
    levelProgression = 1;
}
</code></pre>

<p>鉴于等级上限不一致...我应该如何处理这个问题?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>嗯。一种简单的方法是将级别上限值存储在数组中。根据小于的最大值找到玩家的当前等级。 (一级是 0 到 499,二级是 500 到 1249 等)使用循环来查找用户的级别,而不是一组 if/else 语句。</p>

<p>然后计算玩家当前关卡的范围,(end_of_range - start_of_range)</p>

<pre><code>0 - 499 = 499
500 - 1249 = 749,
</code></pre>

<p>等等</p>

<p>如果玩家得分为 600,则他是 2 级角色,在 500-1249 范围内。 </p>

<p>他在 600-500 或 100 分的范围内。 (600-500)/749*100 是玩家在该范围内的完成百分比。在本例中完成了 13.35%。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何计算 RPG 等级进度百分比,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/27454457/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/27454457/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何计算 RPG 等级进度百分比