【问题标题】:Point Combo multipliers in score system分数系统中的点组合乘数
【发布时间】:2019-01-16 23:35:00
【问题描述】:

我对编程很陌生,目前正在使用 c# 在 Unity 上开发一个无尽的运行游戏。 我一直在努力使我的评分系统正常工作。

玩家根据行驶距离收集分数。所以在Update() 中管理分数的脚本中,我有:

distance += Vector2.Distance(Player.transform.position, lastPosition);
lastPosition = Player.transform.position;

baseScore = distance;  

而且效果很好。

在这个游戏中,你会因为在一定距离内没有撞到障碍物而获得奖励,所以在玩家控制器脚本中我写了:

public void Update()
{
    distanceTraveled += Vector2.Distance(transform.position, lastPosition);
    lastPosition = transform.position;

    if (distanceTraveled >= 10)
    {
        NoHitCombo = NoHitCombo + 2;
        distanceTraveled = 0;
    }
    [...] 
 }

public void OnTriggerEnter2D(Collider2D other)
if (other.gameObject.tag == "Obstacle")
{
    NoHitCombo = 0;
    distanceTraveled = 0;
}

所以,如果我没有击中任何东西,我的得分增加而 NoHitCombo > 0 应该是 *2、*4、*6 等。

例如:

在开始时,我正在获得距离作为得分。 虽然 NoHitCombo 为 2,但我想计算一个新值,即 "Distance since NoHitCombo value has changed * NoHitCombo"。如果它的 4 我想要另一个值来计算距离 * 4 等等。

我尝试在Update() 中这样写smt:

Finalscore = baseScore * NoHitCombo; 

但这不起作用,因为我的分数随着 NoHitCombo 值的变化而变化。 我用if (nohitcombo > 0) 尝试了一些东西,但没有达到预期的效果。

我想我错过了一些东西来完成这个谜题,我尝试的一切都是错误的。 我想不出解决这个问题。我可能确实需要在乘数处于活动状态时存储行驶距离的值,一旦它发生变化,它应该将该值添加到分数中

任何帮助将不胜感激 ps 英语不是我的母语,抱歉!

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    如何重新使用您已经获得的“自上一帧以来的距离”值​​

    private void Update()
    {
        var distanceSinceLastFrame = Vector2.Distance(transform.position, lastPosition);
        lastPosition = transform.position;
    
        // ...
    
        distanceTraveled += distanceSinceLastFrame;
        if (distanceTraveled >= 10)
        {
            NoHitCombo = NoHitCombo + 2;
            distanceTraveled = 0;
        }
    
        // ...
    
                                               // if NoHitCombo is 0 use 1 instead
        FinalScore += distanceSinceLastFrame * NoHitCombo == 0 ? 1 : NoHitCombo;
    }
    

    所以不要总是将FinalScore 设置为固定计算值,而是将distanceSinceLastFrame * NoHitCombo 添加到当前值。

    【讨论】:

    • 它实际上正在按预期工作!当 NoHitCombo = 0 时无法正常工作。无论如何,非常感谢,我从昨天开始就被困在这里:DD
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    相关资源
    最近更新 更多