在Google图片搜索中欺骗隐藏游戏“Atari Breakout”

时间:2013-05-13 23:22:56

标签: javascript html firebug

this hidden html game中的作弊/自动移动桨怎么样?

有一个

<div id="breakout-ball"><span>●</span></div>

<div id="breakout-paddle"></div>

移动鼠标时,桨叶水平移动。如何将球的运动与球拍连接起来?

这个问题将尽快成为“社区维基”。

4 个答案:

答案 0 :(得分:6)

function cheat() {
    var ball   = document.getElementById('breakout-ball');
    var paddle = document.getElementById('breakout-paddle');

    paddle.style.left = ball.style.left;

    setTimeout(cheat, 20);
}

cheat();

// Add this via the FireBug console. 

答案 1 :(得分:2)

我稍微修改了你的解决方案,以解决球离开屏幕并打破黑客的情况以及球被卡在角落里。

function cheat() {
  var ball   = document.getElementById('breakout-ball');
  var paddle = document.getElementById('breakout-paddle');

  var buffer = Math.floor((Math.random()*100)+1);
  var leftVal = parseInt(ball.style.left, 10);

  if (ball.style.left) {
    paddle.style.left = (leftVal - buffer) + 'px';
  }


  setTimeout(cheat, 100);
}

cheat();

老实说,如果你要走那条路,为什么不这样做?

function cheat() {
  var paddle = document.getElementById('breakout-paddle');

  paddle.style.width = '100%';
}

cheat();

无论如何,我将继续深入研究代码并进行更深入的操作

答案 2 :(得分:1)

在chrome中,搜索游戏,按住Ctrl + J,粘贴以下内容,然后按回车键。

这是一个简单的目标:

//get the ball's X position from its CSS
function ballx(){
    return parseFloat(document.querySelector("#breakout-ball").style.left.split("px")[0]);
}
function update(e){
    //throws an exception when the game isn't up. Can be really annoying.
    try{document.querySelector("#breakout-paddle").style.left = (ballx() - 75)+"px";}
    catch(ex){}
}
var intervalTimer = setInterval(update, 125);//let it have a single weakness in case someone else tries it while I am around.

间隔率越低,球拍相对于球的移动速度越快,但比赛进行得越慢。可以通过简单的requestAnimationFrame循环给出最大速率,但这会大大降低浏览器的速度(至少在我的笔记本电脑上)。

我尝试改变桨的大小。它确实不起作用。 我相信使用jQuery会更简单,但是为什么在做硬核时很容易让作弊变得容易?

答案 3 :(得分:1)

我想出了一种解决此问题的新方法。每当屏幕尺寸或窗口尺寸更改时,桨叶都会根据屏幕尺寸更改尺寸。为了解决这个问题,我只是添加了另一部分,将桨的大小分成两半,然后使用该值找到桨的中心。非常简单而且非常有效。

function autoMove() {
var ball   = document.getElementById('breakout-ball')
var paddle = document.getElementById('breakout-paddle')

var leftVal = parseInt(ball.style.left, 10)
var paddleWidth = parseFloat(paddle.style.width, 10) / 2

paddle.style.left = (leftVal - paddleWidth) + 'px'

setTimeout(autoMove, 20)
}

autoMove();

另外,不喜欢函数名称。看起来太可疑了,于是更改了它。希望这会有所帮助。