宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取
Chrome小恐龙前端修改代码代码总结
偶然间发现谷歌浏览器的离线小恐龙游戏,上网查找的攻略总结。
Chrome小恐龙是什么?
在Chrome谷歌浏览器)断网之后访问在线页面,如a.com
会出现以下界面,叫做Chrome小恐龙游戏.这是一个隐藏的彩蛋。
除了断网以外,直接在Chrome里访问网站chrome://dino/
也可以看到的。
这时按空格就可以开始游戏了。
怎么控制游戏?
按键 | 名称 | 用途 |
---|---|---|
UpKey | 箭头上 | 跳跃 |
DownKey | 箭头下 | 下蹲/快速降落 |
Space | 空格 | 开始游戏/重新开始游戏/跳跃 |
修改代码使用说明
提供的以下所有修改代码都可以这样使用!
第一步 打开Chrome浏览器打开这个网站
第二步按F12
调出开发者工具
第三步 点击下面图中的Console
第四步 然后会弹出这个界面
第五步 然后复制代码这里选用下面的修改代码1
中的压缩代码即可
第六步 然后按一下回车,就可以运行代码了。
修改代码1 (复制压缩版即可)
将下面的代码贴到控制台(console)中,即可完成小恐龙自动奔跑的神操作。
原版代码:
function TrexRunnerBot) {
const makeKeyArgs = keyCode) => {
const preventDefault = ) => void 0;
return {keyCode, preventDefault};
};
const upKeyArgs = makeKeyArgs38);
const downKeyArgs = makeKeyArgs40);
const startArgs = makeKeyArgs32);
if !Runner).playing) {
Runner).onKeyDownstartArgs);
setTimeout) => {
Runner).onKeyUpstartArgs);
}, 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 needsToTackleobstacle) && closeEnoughToTackleobstacle)) tackleobstacle);
}
function needsToTackleobstacle) {
return obstacle.yPos !== 50;
}
function closeEnoughToTackleobstacle) {
return obstacle.xPos <= Runner).currentSpeed * 18;
}
function tackleobstacle) {
if isDuckableobstacle)) {
duck);
} else {
jumpOverobstacle);
}
}
function isDuckableobstacle) {
return obstacle.yPos === 50;
}
function duck) {
Runner).onKeyDowndownKeyArgs);
setTimeout) => {
Runner).onKeyUpdownKeyArgs);
}, 500);
}
function jumpOverobstacle) {
if isNextObstacleCloseToobstacle))
jumpFast);
else
Runner).onKeyDownupKeyArgs);
}
function isNextObstacleCloseTocurrentObstacle) {
const nextObstacle = Runner).horizon.obstacles[1];
return nextObstacle && nextObstacle.xPos - currentObstacle.xPos <= Runner).currentSpeed * 42;
}
function jumpFast) {
Runner).onKeyDownupKeyArgs);
Runner).onKeyUpupKeyArgs);
}
return {conquerTheGame: conquerTheGame};
}
let bot = TrexRunnerBot);
let botInterval = setIntervalbot.conquerTheGame, 2);
压缩版代码:
function TrexRunnerBot){function f){Runner).onKeyDownd);setTimeoutfunction){Runner).onKeyUpd)},500)}var b=functiona){return{keyCode:a,preventDefault:function){}}},c=b38),d=b40),e=b32);Runner).playing||Runner).onKeyDowne),setTimeoutfunction){Runner).onKeyUpe)},500));return{conquerTheGame:function){ifRunner&&Runner).horizon.obstacles[0]){var a=Runner).horizon.obstacles[0];if!a.typeConfig||"SNACK"!==a.typeConfig.type)&&50!==a.yPos&&a.xPos<=18*Runner).currentSpeed)if50=== a.yPos)f);else{var b=Runner).horizon.obstacles[1];ifb&&b.xPos-a.xPos<=42*Runner).currentSpeed)Runner).onKeyDownc),Runner).onKeyUpc);else Runner).onKeyDownc)}}}}}var bot=TrexRunnerBot),botInterval=setIntervalbot.conquerTheGame,2);
原理:检测物体,自动按键模拟。这里还为了观看做了一点优化。
修改代码2
将下面的代码贴到控制台中,即可无视任何伤害。(同理操作即可)
Runner.instance_.gameOver=function){}
原理:把gameOver函数置空。好简单emmm)
修改代码3:(复制压缩版即可)
*积分提升速度修改为1000倍…(数值可以自己定义 1000)
原版代码:
let hackScore = 0;
Object.definePropertyRunner.instance_, 'distanceRan', {
get: ) => hackScore,
set: value) => hackScore = value + Math.floorMath.random) * 1000),
configurable: true,
enumerable: true,
});
压缩版代码:
var hackScore=0;Object.definePropertyRunner.instance_,"distanceRan",{get:function){return hackScore},set:functiona){return hackScore=a+Math.floor1E3*Math.random))},configurable:!0,enumerable:!0});
原理:
借助Object.defineProperty)
,我们能够轻易的修改现有对象上的属性,配合重新定义对象具体内容的 getter
、setter
描述符,可以做到对于属性的劫持操作。
修改代码4
刷分BUG,输进控制台按回车后再开始游戏即可
Runner.instance_.setSpeed99999);
恢复正常请输入:
Runner.instance_.setSpeed10);
倒退模式没有什么用)请输入:
Runner.instance_.setSpeed-10);
最后特别提示:
这些代码可以叠加使用。
在输入完一个代码后按回车,然后输入另一个代码再按回车即可实现叠加。
总结
游戏还得自己慢慢玩才有意思,当修改之后,这个游戏就失去原有的味道了…..
总之,想有意思地玩的话,建议还是不修改以上代码,自己慢慢地好好玩,靠自己玩得的分数才有意义。
以上修改相关代码,仅供参考。最后,祝大家愉快。