1

所以我在查找 Cookie Clicker 自动点击脚本并找到了这两个功能。

var autoClicker = setInterval(Game.ClickCookie, <milliseconds interval>); 

var autoClicker = function(clicksAtOnce, repeatInterval) {
  var cheated = false;
  var intoTheAbyss = function() {
    if(!cheated) {
      cheated = true;
      for(var i = 0; i < clicksAtOnce; i++) {
        Game.ClickCookie();
        Game.lastClick = 0;
      }
      cheated = false;
    }
  };
  return setInterval(intoTheAbyss, repeatInterval);
}; 
autoClicker(<amount of clicks>, <milliseconds interval>);

每个函数在间隔期间模拟 cookie 的多次点击。第二个功能的描述说The auto-click cheat above(first function) can only click as fast as the CPU can handle. To produce an even faster effect, use:

所以我的问题是第二个函数比第一个函数快吗?第二个函数中的闭包有什么意义?(它仍然会自动单击没有闭包部分)。

4

1 回答 1

3

我不认为提供的解释严格来说是正确的。更重要的是,在第一个中,您每发送一个函数调用<milliseconds interval>. 在第二个中,您正在发送<amount of clicks>函数调用。如果您在第二次中每 100 毫秒发送 100 次点击,这与以 1 毫秒间隔运行第一次相同。但是,您不能低于 1 毫秒的间隔,因此您可以尝试以每毫秒 100 次点击的速度运行第二个,这必然比第一个更快。

该函数中的var cheated位置会阻止该intoTheAbyss函数在每次运行时生成clicksAtOnce新的布尔值。cheated它只是为了节省内存。

于 2013-10-27T17:08:52.850 回答