Git游戏

您现在的位置是:首页 > 攻略大全 > 黑科技

黑科技

通用游戏加速代码

2026-02-04 黑科技491
欢迎加入黑科技QQ群:934074044 交流,请勿在其它群炫耀修改成果,谢谢合作!
// == 超级游戏加速器(前台+后台通用)==(function() { // ===================== 配置项 ===================== // 倍速控制:修改此数值调整游戏加速倍数(1=正常速度,>1=加速,<1=减速) const SPEED_MULTIP...

// == 超级游戏加速器(前台+后台通用)==

(function() {

    // ===================== 配置项 =====================

    // 倍速控制:修改此数值调整游戏加速倍数(1=正常速度,>1=加速,<1=减速)

    const SPEED_MULTIPLIER = 10;


    // ===================== 保存原始方法 =====================

    // 保存原生performance.now方法(绑定原上下文)

    const originalPerformanceNow = performance.now.bind(performance);

    // 保存原生Date.now方法

    const originalDateNow = Date.now;

    // 保存原生动画帧相关方法

    const originalRAF = window.requestAnimationFrame;

    const originalCancelRAF = window.cancelAnimationFrame;


    // ===================== 虚拟时间管理 =====================

    // 初始化虚拟时间(以真实时间为基准)

    let fakeTime = originalPerformanceNow();

    // 记录上一次的真实时间,用于计算时间差

    let lastRealTime = originalPerformanceNow();

    // 动画帧ID计数器

    let rafIdCounter = 0;

    // 存储动画帧回调函数的映射表

    const rafCallbacksMap = new Map();


    // ===================== 1. 劫持performance.now() =====================

    // 影响基于performance.now的时间计算(游戏常用)

    performance.now = function() {

        const currentRealTime = originalPerformanceNow();

        // 按倍速更新虚拟时间

        fakeTime += (currentRealTime - lastRealTime) * SPEED_MULTIPLIER;

        lastRealTime = currentRealTime;

        return fakeTime;

    };


    // ===================== 2. 劫持Date相关方法 =====================

    // 劫持Date.now(),返回虚拟时间的毫秒数

    Date.now = function() {

        return Math.floor(fakeTime);

    };


    // 劫持Date构造函数,无参数时使用虚拟时间

    const OriginalDate = Date;

    window.Date = function(...args) {

        return args.length === 0 

            ? new OriginalDate(fakeTime) 

            : new OriginalDate(...args);

    };


    // 还原Date的原型链和静态方法,避免兼容问题

    Object.setPrototypeOf(window.Date, OriginalDate);

    ['parse', 'UTC', 'prototype'].forEach(prop => {

        window.Date[prop] = OriginalDate[prop];

    });


    // ===================== 3. 劫持requestAnimationFrame =====================

    // 劫持动画帧请求,加速回调执行(游戏动画核心)

    window.requestAnimationFrame = function(callback) {

        const id = ++rafIdCounter;

        rafCallbacksMap.set(id, callback);

        

        // 用原始RAF执行,但传入虚拟时间戳

        originalRAF.call(window, function(timestamp) {

            if (rafCallbacksMap.has(id)) {

                // 按倍速计算动画帧时间戳

                const fakeTimestamp = fakeTime;

                rafCallbacksMap.get(id)(fakeTimestamp);

            }

        });

        

        return id;

    };


    // ===================== 4. 劫持cancelAnimationFrame =====================

    // 劫持动画帧取消方法,保证能正确清理回调

    window.cancelAnimationFrame = function(id) {

        rafCallbacksMap.delete(id);

        originalCancelRAF.call(window, id);

    };


    // ===================== 提示信息 =====================

    console.log(`✅ 游戏加速器已启动,当前倍速:${SPEED_MULTIPLIER}x`);

})();


文章评论

共有0条评论来说两句吧...