Open WekyJay opened 6 days ago
只是自己本人的一点拙见,仅供参考: 在看这个章节的时候带着“等级”的理解,多少有点问题,例如下面这段代码:
@discardableResult mutating func advance(to level: Int) -> Bool { if LevelTracker.isUnlocked(level) { currentLevel = level // 等级回调?? return true } else { return false } }
其中的currentLevel = level告诉我们调整当前的等级,如果我尝试使用更低的等级来使用该方法,currentLevel是否会跟着回调,因此百思不得其解。 如果调整为关卡,可以以存档的方式来理解。当玩家解锁的最高的关卡等级highestUnlockedLevel为5,那么advance填入参数6则无法进入第六关,而小于等于5的关卡可以进入,那么则调整当前进入的存档关卡 currentLevel(当前关卡)为小于等于5的关卡。
currentLevel = level
highestUnlockedLevel
只是自己本人的一点拙见,仅供参考: 在看这个章节的时候带着“等级”的理解,多少有点问题,例如下面这段代码:
其中的
currentLevel = level
告诉我们调整当前的等级,如果我尝试使用更低的等级来使用该方法,currentLevel是否会跟着回调,因此百思不得其解。 如果调整为关卡,可以以存档的方式来理解。当玩家解锁的最高的关卡等级highestUnlockedLevel
为5,那么advance填入参数6则无法进入第六关,而小于等于5的关卡可以进入,那么则调整当前进入的存档关卡 currentLevel(当前关卡)为小于等于5的关卡。