这个隐藏的 html 游戏中的作弊/自动移动桨会是什么样子?
有一个
<div id="breakout-ball"><span>●</span></div>
和一个
<div id="breakout-paddle"></div>
移动鼠标时,桨叶水平移动。如何将球的运动与桨联系起来?
这个问题将尽快成为“社区维基”。
这个隐藏的 html 游戏中的作弊/自动移动桨会是什么样子?
有一个
<div id="breakout-ball"><span>●</span></div>
和一个
<div id="breakout-paddle"></div>
移动鼠标时,桨叶水平移动。如何将球的运动与桨联系起来?
这个问题将尽快成为“社区维基”。
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.
我稍微修改了您的解决方案,以考虑球离开屏幕并打破黑客攻击以及球被卡入角落的情况。
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();
无论如何,我将继续深入研究代码并进行更深入的操作
在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 会更简单,但是为什么在硬核已经如此容易的情况下让作弊变得容易呢?
我想出了一个新的方法来解决这个问题。每当屏幕大小或窗口大小改变时,桨叶会根据屏幕大小改变大小。为了解决这个问题,我只是添加了另一个部分,将桨的大小分成两半,然后使用该值找到桨的中心。非常简单而且非常有效。
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();
另外,不喜欢函数名。看起来太可疑了,所以改了。希望这可以帮助。