最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Chrome Dino 小恐龙作弊?控制台解决|技术点评

    正文概述 掘金(Hoarfroster)   2021-03-13   1755

    Chrome Dino 小恐龙作弊?控制台解决|技术点评

    不知道你是否对 chrome://dino 这个网址有些什么印象?你最多拿了多少分?

    Dinosaur Game(也被称为 T-雷克斯 游戏),最初代号为 Program Bolan,由塞巴斯蒂安·加布里埃尔(Sebastien Gabriel)于 2014 年构建的,是 Chrome 浏览器内置的一个小游戏。

    Chrome 浏览器在无网络连接的错误页面埋了一个彩蛋:按下空格键,一只小恐龙雷克斯就会倒腾它的两条小短腿在沙漠中跑起来。我们可以用空格键或者 键控制起跳,用 键控制下蹲,帮它跳过大大小小的仙人掌、躲过突然飞来的翼龙。

    但 其 实!

    游戏把它的 instance 暴露在了全局变量中 —— window.Runner

    console.log(window.Runner.instance_);
    

    Chrome Dino 小恐龙作弊?控制台解决|技术点评

    我想,聪明的你,早就已经明白了,我们应该干什么了吧~

    云海

    Instance 中的一个变量名很是显眼 —— config,再加之其中的变量名也很是显眼,就先让我们来玩一玩配置吧:

    Chrome Dino 小恐龙作弊?控制台解决|技术点评

    疾跑

    window.Runner.instance_.setSpeed(100);
    

    不过值得注意的是,跑得太快,脚下的陆地会被雷克斯像在地毯上那样,直接给你掀了~

    Chrome Dino 小恐龙作弊?控制台解决|技术点评

    高跳

    window.Runner.instance_.tRex.setJumpVelocity(100);
    

    跳太高,看不见,一摔下来扎屁屁(

    Chrome Dino 小恐龙作弊?控制台解决|技术点评

    没障碍物

    window.Runner.instance_.playingIntro = true;
    

    没有障碍物,一览无余~

    Chrome Dino 小恐龙作弊?控制台解决|技术点评

    无敌

    window.Runner.instance_.gameOver = () => {};
    

    无敌是多么,多么寂寞~

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

    Chrome Dino 小恐龙作弊?控制台解决|技术点评

    分数速度

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

    在不影响雷克斯速度的情况下加快分数的速度

    Chrome Dino 小恐龙作弊?控制台解决|技术点评

    设置分数

    Object.defineProperty(Runner.instance_, 'distanceRan', {
        get: () => 99999,
        set: (value) => 99999,
        configurable: true,
        enumerable: true,
    });
    

    • 本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情

    起源地下载网 » Chrome Dino 小恐龙作弊?控制台解决|技术点评

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元