chrome小恐龙源代码_chrome小恐龙代码

chrome小恐龙源代码_chrome小恐龙代码Chrome小恐龙前端修改代码代码总结偶然间发现谷歌浏览器的离线小恐龙游戏,上网查找的攻略总结。Chrome小恐龙是什么?在Chrome(谷歌浏览器)断网之后访问在线页面,如a.com会出现以下

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Chrome小恐龙前端修改代码代码总结

偶然间发现谷歌浏览器的离线小恐龙游戏,上网查找的攻略总结。

Chrome小恐龙是什么?

在Chrome(谷歌浏览器)断网之后访问在线页面,如a.com会出现以下界面,叫做Chrome小恐龙游戏.这是一个隐藏的彩蛋。
除了断网以外,直接在Chrome里访问网站chrome://dino/也可以看到的。

chrome小恐龙源代码_chrome小恐龙代码

这时按空格就可以开始游戏了。

怎么控制游戏?

按键 名称 用途
UpKey 箭头上 跳跃
DownKey 箭头下 下蹲/快速降落
Space 空格 开始游戏/重新开始游戏/跳跃

修改代码使用说明

提供的以下所有修改代码都可以这样使用!

第一步 打开Chrome浏览器打开这个网站
第二步 按F12 调出开发者工具
第三步 点击下面图中的 Console
第四步 然后会弹出这个界面
第五步 然后复制代码(这里选用下面的修改代码1中的压缩代码即可
第六步 然后按一下回车,就可以运行代码了。

chrome小恐龙源代码_chrome小恐龙代码

修改代码1 (复制压缩版即可)

将下面的代码贴到控制台(console)中,即可完成小恐龙自动奔跑的神操作。
原版代码:

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);

压缩版代码:

function TrexRunnerBot(){function f(){Runner().onKeyDown(d);setTimeout(function(){Runner().onKeyUp(d)},500)}var b=function(a){return{keyCode:a,preventDefault:function(){}}},c=b(38),d=b(40),e=b(32);Runner().playing||(Runner().onKeyDown(e),setTimeout(function(){Runner().onKeyUp(e)},500));return{conquerTheGame:function(){if(Runner&&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)if(50=== a.yPos)f();else{var b=Runner().horizon.obstacles[1];if(b&&b.xPos-a.xPos<=42*Runner().currentSpeed)Runner().onKeyDown(c),Runner().onKeyUp(c);else Runner().onKeyDown(c)}}}}}var bot=TrexRunnerBot(),botInterval=setInterval(bot.conquerTheGame,2);

原理:检测物体,自动按键模拟。这里还为了观看做了一点优化。

chrome小恐龙源代码_chrome小恐龙代码

修改代码2

将下面的代码贴到控制台中,即可无视任何伤害。(同理操作即可)

Runner.instance_.gameOver=function(){}

原理:把gameOver函数置空。(好简单emmm)

修改代码3:(复制压缩版即可)

*积分提升速度修改为1000倍…(数值可以自己定义 1000)
原版代码:

let hackScore = 0;
 
Object.defineProperty(Runner.instance_, 'distanceRan', {
  get: () => hackScore,
  set: (value) => hackScore = value + Math.floor(Math.random() * 1000),
  configurable: true,
  enumerable: true,
});

压缩版代码:

var hackScore=0;Object.defineProperty(Runner.instance_,"distanceRan",{get:function(){return hackScore},set:function(a){return hackScore=a+Math.floor(1E3*Math.random())},configurable:!0,enumerable:!0});

原理:
借助Object.defineProperty(),我们能够轻易的修改现有对象上的属性,配合重新定义对象具体内容的 gettersetter 描述符,可以做到对于属性的劫持操作。

修改代码4

刷分BUG,输进控制台按回车后再开始游戏即可

Runner.instance_.setSpeed(99999);

恢复正常请输入:

Runner.instance_.setSpeed(10);

倒退模式(没有什么用)请输入:

Runner.instance_.setSpeed(-10);

最后特别提示:

这些代码可以叠加使用。
在输入完一个代码后按回车,然后输入另一个代码再按回车即可实现叠加。

总结

游戏还得自己慢慢玩才有意思,当修改之后,这个游戏就失去原有的味道了…..

总之,想有意思地玩的话,建议还是不修改以上代码,自己慢慢地好好玩,靠自己玩得的分数才有意义。

以上修改相关代码,仅供参考。最后,祝大家愉快。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168214.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java 初中级程序员如何快速成长?

    Java 初中级程序员如何快速成长?入职后如何快速成长到CTO入职后三个月试用期要做的事三法宝,处理同事关系核心两点,处理好领导关系每件事都是学习的机会主动加班,试用期加班是学习的好机会未通过试用期,如何应对?前三年需要学的技术工作后,千万不要停止学习项目经验如何累积?JAVA高级技术还需要学习哪些?架构师课程如何学习?工作中,快速学习新技术的捷径(重要的是形成体系,而不是钻到某个技术点)…

    2022年6月9日
    25
  • ES6转ES5_nodejs支持es6吗

    ES6转ES5_nodejs支持es6吗Babel介绍Babel是一个ES6转码器,能将ES6代码转为ES5代码,这样原本不支持ES6的老版本浏览器执行ES6代码//转码前:使用了ES6箭头函数items.map(item=>item+1);//转码后:转为了普通函数items.map(function(item){returnitem+1;});Babel安装安装Babel,一个命令就够了:$npminstall–save-dev@babel/cor…

    2022年9月24日
    3
  • fast裸奔框架_达梦数据库导出dmp备份命令

    fast裸奔框架_达梦数据库导出dmp备份命令关于开源框架renrne-fast3.0集成达梦(DM)数据库以及遇到的小坑分享

    2022年7月28日
    10
  • mysql 死锁是什么_mysql死锁是什么意思

    mysql 死锁是什么_mysql死锁是什么意思mysql 死锁是指两个或多个事务在同一资源上相互占用 并请求锁定对方占用的资源 从而导致恶性循环 InnoDB 存储引擎能检测到死锁的循环依赖并立即返回一个错误 只有部分或完全回滚其中一个事务 才能打破死锁 什么是死锁 它是如何产生的 死锁是指两个或多个事务在同一资源上相互占用 并请求锁定对方占用的资源 从而导致恶性循环 推荐教程 mysql 教程 当事务试图以不同的顺序锁定资源时 就可能产生死锁

    2025年8月15日
    4
  • 学习方法

    学习方法

    2021年8月17日
    52
  • system.Exception:端口已被占用1080「建议收藏」

    system.Exception:端口已被占用1080「建议收藏」找出是哪个程序占用了1080端口打开cmd.exe,输入命令:netstat-aon|findstr"1080"1最后一列就是PID了,我的是3104. 要想知道此PID对应什么程序,可以继续输入:tasklist|findstr"4568"1打开任务管理器,在进程里面找下wpscloudsvr.exe,或者在服务里面找PID为3104。…

    2025年9月30日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号