this hidden html game中的作弊/自动移动桨怎么样?
有一个
<div id="breakout-ball"><span>●</span></div>
和
<div id="breakout-paddle"></div>
移动鼠标时,桨叶水平移动。如何将球的运动与球拍连接起来?
这个问题将尽快成为“社区维基”。
答案 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();
另外,不喜欢函数名称。看起来太可疑了,于是更改了它。希望这会有所帮助。