我正在用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中的代码请)
编辑:完美地使用两个答案组合。
答案 0 :(得分:3)
而不是提高你的速度,你可以这样做:
speed = baseSpeed + (points / 50);
其中baseSpeed是游戏开始时的速度。
答案 1 :(得分:3)
不要担心确切的50倍多点,跟踪当前点" group"通过模数来推导你的速度值
cur_speed = points - (points % 50);
e.g。如果他们在203点,那么cur_speed是203-(203%50) - > 203-3 - > 200.如果他们突然跳到308分,因为他们击中疯狂点组合,那么速度变为308-(308%50) - > 308-8 - > 300
答案 2 :(得分:0)
如果你想在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
等等。