我正在写一个俄罗斯方块克隆。我想让这些碎片每60秒后更快一点,为此我正在使用ScheduledExecutorService:
executor.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
levelUp();
}
}, 60, 60, TimeUnit.SECONDS);
现在,我可以暂停游戏,暂停游戏时,显然会停止做任何事情,直到我恢复它为止。就像现在一样,暂停游戏很好,一切都是为了所有事情,但这个执行者负责“升级”。例如,如果我玩了50秒,暂停游戏一分钟,恢复并再玩10秒,我将处于2级,而我应该处于1级(我们从0级开始)。有没有办法暂停和恢复执行者?
请注意,暂停时只是没有升级是不够的:如果我玩50秒,然后暂停20秒然后恢复,我必须在我升级之前再玩50秒,而不是假设的10秒
那么,有没有办法暂停和恢复ScheduledExecutorService
?