【问题标题】:Speed up game after every 50 points每50分后加速游戏
【发布时间】:2016-05-03 04:12:47
【问题描述】:

我正在使用 sprite-kit 制作 2D 反应游戏,但我又遇到了同样的问题。我已经问过这个问题一次并且得到了很好的答案并且一切正常,但现在我又被卡住了。

就像标题说的那样,我想每 50 点加速我的游戏,但是当我得到正确的点数(如 50、100、150)时它只会加速。问题是我有连击点,而且总是一些多点。例如从 48 到 51 点,所以它永远不会加速。我怎样才能加快游戏​​速度,甚至更多点?我的意思是从 50 到 100 一个加速,从 100 到 150 等等。到目前为止,这是我的代码:

if (points % 10 == 0) {

    if (readyToSpeed) {

        speed++;
        NSLog(@"speed up");
        readyToSpeed = NO;
    }
}

感谢您的帮助! (请在objective-c中编写代码)

编辑:结合使用两个答案完美工作。

【问题讨论】:

    标签: ios objective-c sprite-kit 2d-games


    【解决方案1】:

    你可以这样做,而不是增加你的速度:

    speed = baseSpeed + (points / 50);
    

    baseSpeed 是游戏开始时的速度。

    【讨论】:

    • 如何设置限制?
    • 之后做一个条件,如果 speed > maxSpeed, speed = maxSpeed
    【解决方案2】:

    不用担心精确的 50 倍多点,通过模数跟踪当前点“组”以得出您的速度值

    cur_speed = points - (points % 50);
    

    例如如果他们是 203 点,那么 cur_speed 是 203-(203%50) -> 203-3 -> 200。如果他们因为达到了疯狂的点数组合而突然跳到 308 分,那么速度变为 308-(308 %50) -> 308-8 -> 300

    【讨论】:

    • 看起来不错,但是我在哪里以及如何实现呢?因为我不知道怎么做 if 语句。
    • 无论何时何地你需要更新速度,我想。如果他们的速度完全取决于他们的分数,那么您计算他们所在的 50x 组,并使用它来更新速度。就像@PaulDaPigeon 在下面所做的那样(基本速度 + 总增量),或者保持当前速度 = 先前速度 + 点组变化的运行计数。
    【解决方案3】:

    如果您只想在 50-100 和 100-150 之间执行以下操作:

    If points >  50 && points < 100 {  
    //speedup code
    }else if points > 100 && points < 150 {
    //speedup code
    } //etc
    

    更新:如果您希望这无止境,请这样做:

    var speednumber = points/50
    speednumber = speednumber-decimal   //some code to cut of the decimals
    setSpeedTo(speednumber+1) //you got to make a function for this
    

    setSpeedTo(1) 会正常
    2 将是 50-100
    3 100-150
    等等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多