如何更快地合成大西瓜?了解游戏源码,闭着眼睛也能成功!

2023-09-29 11:53

“你还小,请不要玩合成西瓜。”

在过年前这个无心工作的特殊时期,玩法简单、“病毒”属性强大的H5小游戏《合成大西瓜》一夜爆红。各地的人们都贴出了自己熬夜的照片。潜心合成大西瓜的成果。

1 {IMG_1:Ahr0Chm6ly9pbwctymxvzy5JC2RMNUL2LMNUL2LTZ19JB252ZXJ0L2I3MZGWMTM2MZKYNDK3MMMMMMMMJFILMDPZG ==/}

这款小游戏于1月22日上线,由于其神奇的玩法和音效,《合成西瓜》成为新年伊始的热门话题。一经推出就席卷了朋友圈。现在有很多山寨版本。魔改版主题多样,连你都想洗眼睛(别模仿得太差了)……截至目前,#合大水瓜#微博话题已累计浏览量17.4亿,阅读量43.2万讨论度,其曝光度不亚于顶级流星。

这个游戏已经被很多玩家和程序员修改过。现在这个游戏已经变成了一个大家可以随意改变机制的游戏。今天给大家分享一下合成大西瓜的代码。让我们来看看!

合成大西瓜代码一览

// 需要先初始化QQPlay窗口

如果(假){

 BK.Script.loadlib('GameRes://libs/qqplay-adapter.js');

}

var loadingBool = true;

varloadNum = 0;

window.boot = 函数 () {

var settings = window._CCSettings;

  窗口._CCSettings = 未定义;

if ( !settings.debug ) {

var uuids = settings.uuids;

        var rawAssets = settings.rawAssets;

        var assetTypes = settings.assetTypes;

        var realRawAssets = settings.rawAssets = {};

        for (var mount in rawAssets) {

            var items = rawAssets[mount];

            var realEntries = realRawAssets[mount] = {};

            for(条目中的 var id){

                var 条目 = 条目[id];

                var 类型 = 条目[1];

                // 检索缩小的原始资源

                if (typeof type === '数字') {

                    条目[1] = assetTypes[类型];

                }

                //检索uuid

                realEntries[uuids[id] || id] = 条目;

            }

        }

        var 场景 = settings.scenes;

        for (var i = 0; i < Scenes.length; ++i) {

            var 场景 = 场景[i];

            if (typeof scene.uuid === 'number') {

                场景.uuid = uuids[场景.uuid];

            }

        }

        var PackedAssets = settings.packedAssets;

        for(packedAssets 中的 var packId){

            var PackedIds = PackedAssets[packId];

            for (var j = 0; j < PackedIds.length; ++j) {

                if (typeof PackedIds[j] === '数字') {

                    packedIds[j] = uuids[packedIds[j]];

                }

            }

        }

        var 子包 = settings.subpackages;

        for(子包中的 var subId){

            var uuidArray = 子包[subId].uuids;

            if (uuidArray) {

                for (var k = 0, l = uuidArray.length; k < l; k++) {

                    if (typeof uuidArray[k] === '数字') {

                        uuidArray[k] = uuid[uuidArray[k]];

                    }

                }

            }

        }

    }

    函数 setLoadingDisplay () {

        //加载启动场景

        var splash = document.getElementById('splash');

        // var ProgressBar =splash.querySelector('.progress-bar span');

        cc.loader.onProgress = 函数(completedCount、totalCount、item){

            loadData.completedCount = CompletedCount;

            loadData.totalCount = 总计数;

if(loadingBool){

var loadintT = document.getElementById("loadingText")

}

var 百分比 = 100 * 完成计数 / 总计计数;

if(loadingBool && loadingNum >= 1 && 总计数 > 1){

if(百分比.toFixed(0) >= 100){

                    loadintT.innerHTML = '正在加载......100' + '%';

                    setTimeout(function(){

                        loadingBool = false;

                        loadintT.remove();

                    },0.1 * 1000);

                    clearInterval(定时器);

}

}

            loadingNum ++;

// if(loadingBool){

// var loadintT = document.getElementById("loadingText")

// }

// var 百分比 = 100 * 完成计数 / 总计数;

// if(loadingBool && loadingNum >= 1){

//    console.log("dskpi",loadingNum);

//   loadintT.innerHTML = '正在加载......' + parseInt(percent)  + '%';

//    if(percent.toFixed(0) >= 100){

//    loadingBool = false;

//    loadintT.remove();

//    }

// }

//loadingNum ++;

            // var 百分比 = 100 * 完成计数 / 总计数;

            // if (进度条) {

                //progressBar.style.width =%.toFixed(2) + '%';

            // }

        };

        splash.style.display = '块';

        //progressBar.style.width = '0%';

        cc.director.once(cc.Director.EVENT_AFTER_SCENE_LAUNCH, function () {

            splash.style.display = '无';

        });

    }

    var onStart = function () {

        cc.loader.downloader._subpackages = settings.subpackages;

        cc.view.enableRetina(true);

        cc.view.resizeWithBrowserSize(true);

        if (!false && !false) {

            if (cc.sys.isBrowser) {

                setLoadingDisplay();

            }

            如果 (cc.sys.isMobile) {

                if (settings.orientation === '横向') {

                    cc.view.setOrientation(cc.macro.ORIENTATION_LANDSCAPE);

                }

                else if (settings.orientation === '肖像') {

                    cc.view.setOrientation(cc.macro.ORIENTATION_PORTRAIT);

                }

                // cc.view.enableAutoFullScreen([

                //     cc.sys.BROWSER_TYPE_BAIDU,

                //     cc.sys.BROWSER_TYPE_WECHAT,

                //     cc.sys.BROWSER_TYPE_MOBILE_QQ,

                //     cc.sys.BROWSER_TYPE_MIUI,

                // ].indexOf(cc.sys.browserType) < 0);

                cc.view.enableAutoFullScreen(false);

            }

            //限制下载最大并发任务数为2,

            //同时执行更多任务可能会导致某些 Android 系统/浏览器性能下降。

            //您可以根据自己的测试结果调整该数字,必须在任何加载过程之前设置它才能生效。

            if (cc.sys.isBrowser && cc.sys.os === cc.sys.OS_ANDROID) {

                cc.macro.DOWNLOAD_MAX_CONCURRENT = 2;

            }

        }

        // 函数 loadScene(launchScene) {

            // cc.director.loadScene(launchScene, null,

                // 函数 () {

                    // if (cc.sys.isBrowser) {

                        // // 显示画布

                        // var canvas = document.getElementById('GameCanvas');

                        // canvas.style.visibility = '';

                        // var div = document.getElementById('GameDiv');

                        // if (div) {

                            // div.style.backgroundImage = '';

                        // }

                    // }

                    // cc.loader.onProgress = null;

                    // console.log('场景加载成功:' + launchScene);

                // }

            // );

        // }

        var launchScene = settings.launchScene;

        //加载场景

        // loadScene(launchScene);

var 画布;

        if (cc.sys.isBrowser) {

            canvas = document.getElementById('GameCanvas');

        }

var launchScene = settings.launchScene;

         console.log("风景,",launchScene);

         var MainManger = __require("MainManage");

         MainManger.init(launchScene,cc.sys.isBrowser,canvas.style.visibility);

    };

    // jsList

    var jsList = settings.jsList;

    如果(假){

        BK.Script.loadlib();

    }

    否则{

        var bundledScript = settings.debug ? 'src/project.dev.js' : 'src/project.js';

        if (jsList) {

            jsList = m.gsm-guard.net(function (x) {

                返回 'src/' + x;

            });

            jsList.push(bundledScript);

        }

        其他{

            jsList = [bundledScript];

        }

    }

    var 选项 = {

        id: 'GameCanvas',

        场景:设置.场景,

        调试模式:settings.debug? m.gsm-guard.net : cc.debug.DebugMode.ERROR,

        showFPS: !false && settings.debug,

        帧速率:60,

        jsList: jsList,

        groupList:settings.groupList,

        collisionMatrix:settings.collisionMatrix,

    }

    //初始化资产

    cc.AssetLibrary.init({

        libraryPath: 'res/import',

        rawAssetsBase: 'res/raw-',

        rawAssets:settings.rawAssets,

        packedAssets:settings.packedAssets,

        md5AssetsMap:m.gsm-guard.net5AssetsMap,

        子包:settings.subpackages

    });

    m.gsm-guard.net(选项, onStart);

};

//main.js是qqplay和jsb平台入口文件,所以这里一定要留下平台初始化代码

如果(假){

    BK.Script.loadlib('GameRes://src/settings.js');

    BK.Script.loadlib();

    BK.Script.loadlib('GameRes://libs/qqplay-downloader.js');

    var 方向 = {

        '肖像':1,

        '横向左':2,

        '横向右':3

    };

    BK.Director.screenMode = ORIENTATIONS[window._CCSettings.orientation];

    initAdapter();

    cc.game.once(cc.game.EVENT_ENGINE_INITED, function () {

        initRendererAdapter();

    });

    qqPlayDownloader.REMOTE_SERVER_ROOT = "";

    var prevPipe = m.gsm-guard.net5Pipe || cc.loader.assetLoader;

    cc.loader.insertPipeAfter(prevPipe, qqPlayDownloader);

    window.boot();

}

else if (window.jsb) {

    var isRuntime = (typeof loadRuntime === '函数');

    if(isRuntime){

        require('src/settings.js');

        require('src/cocos2d-runtime.js');

        require('jsb-adapter/engine/index.js');

    }

    否则{

        require('src/settings.js');

        require('src/cocos2d-jsb.js');

    require('jsb-adapter/jsb-engine.js');

}

cc.macro.CLEANUP_IMAGE_CACHE = true;

  window.boot();

}

这是一款非常好玩的合成游戏。通过将两个球堆叠在一起,您可以合成一个更大的球。注意随时会滚动的球。你能合成多少个?

最后,如果你在学习编程中遇到瓶颈,感到迷茫和迷茫,可以加入【C语言C++学习企鹅圈

学习交流、技术讨论、面试指导、简历修改……还有大量源码资料等学习资料,零基础视频等你来!