Chrome 浏览器有个彩蛋,在断网状态下或者地址栏输入 Chrome://dino 按下空格键,会触发小恐龙游戏彩蛋,下面这个脚本来源于网络,一位大佬写出来自动控制小恐龙跳跃,以供学习:
function TrexRunnerBot() { | |
const makeKeyArgs = (keyCode) => { | |
const preventDefault = () => void 0; | |
return {keyCode, preventDefault}; | |
}; | |
const upKeyArgs = makeKeyArgs(38); | |
const downKeyArgs = makeKeyArgs(40); | |
const startArgs = makeKeyArgs(32); | |
if (!Runner().playing) { | |
Runner().onKeyDown(startArgs); | |
setTimeout(() => { | |
Runner().onKeyUp(startArgs); | |
}, 500); | |
} | |
function conquerTheGame() { | |
if (!Runner || !Runner().horizon.obstacles[0]) return; | |
const obstacle = Runner().horizon.obstacles[0]; | |
if (obstacle.typeConfig && obstacle.typeConfig.type === 'SNACK') return; | |
if (needsToTackle(obstacle) && closeEnoughToTackle(obstacle)) tackle(obstacle); | |
} | |
function needsToTackle(obstacle) { | |
return obstacle.yPos !== 50; | |
} | |
function closeEnoughToTackle(obstacle) { | |
return obstacle.xPos <= Runner().currentSpeed * 18; | |
} | |
function tackle(obstacle) { | |
if (isDuckable(obstacle)) { | |
duck(); | |
} else { | |
jumpOver(obstacle); | |
} | |
} | |
function isDuckable(obstacle) { | |
return obstacle.yPos === 50; | |
} | |
function duck() { | |
Runner().onKeyDown(downKeyArgs); | |
setTimeout(() => { | |
Runner().onKeyUp(downKeyArgs); | |
}, 500); | |
} | |
function jumpOver(obstacle) { | |
if (isNextObstacleCloseTo(obstacle)) | |
jumpFast(); | |
else | |
Runner().onKeyDown(upKeyArgs); | |
} | |
function isNextObstacleCloseTo(currentObstacle) { | |
const nextObstacle = Runner().horizon.obstacles[1]; | |
return nextObstacle && nextObstacle.xPos - currentObstacle.xPos <= Runner().currentSpeed * 42; | |
} | |
function jumpFast() { | |
Runner().onKeyDown(upKeyArgs); | |
Runner().onKeyUp(upKeyArgs); | |
} | |
return {conquerTheGame: conquerTheGame}; | |
} | |
let bot = TrexRunnerBot(); | |
let botInterval = setInterval(bot.conquerTheGame, 2); |
再将这个代码复制粘贴在浏览器控制台 Console 中,(按 F12 打开控制台),回车键即可。