首页 > 解决方案 > 当不同的计数器达到某些里程碑时,实现计数器的最佳方法是什么

问题描述

我正在尝试统一制作一个点击游戏,每 100 个“视图”产生一美元,我不确定如何解决这个问题。我尝试使用更新功能,为每 100 的倍数加 1 到美元计数器,但是如果数字落在 101 上,我就错过了计数,因为我是初学者,所以我不知道还能尝试什么在这种代码中,我不确定在哪里寻找如何以其他方式执行此操作。

标签: c#scripting

解决方案


一种可能的设置方法是在隐含的Total_ViewsTotal_Earnings变量旁边设置一个单独的Limbo_Views变量,以跟踪计数器距离下一个 100 个视图里程碑的距离或已经超过多远

例如...

public class Video{

    public int Total_Views;
    public int Total_Earnings;
    private int Limbo_Views;

    public Video() {
        Total_Views = 0;
        Total_Earnings = 0;
        Limbo_Views = 0;
    }

    public void addViews(int views) {
        Total_Views += views;           // <-- add views to total
        Limbo_Views += views;           // <- add views to limbo view count
        if(Limbo_Views >= 100) {        // <-- if there 100+ views in limbo...
            int dollarsToAdd = Limbo_Views / 100;  // <-- determine how many dollars should be paid out
            Total_Earnings += dollarsToAdd; // <-- add that amount to earnings
            Limbo_Views -= (dollarsToAdd * 100); // <-- decrement limbo views to reflect views that have been accounted for
        }
    }
}

这应该能够处理您在添加视图和计算他们的收入方面投入的任何正数。

如果您有任何其他问题,请告诉我!


推荐阅读