技术心得记录:怎么更快地合成大西瓜?搞懂游戏的源码,闭着眼睛都能成功!

简介: 技术心得记录:怎么更快地合成大西瓜?搞懂游戏的源码,闭着眼睛都能成功!

“年纪轻轻的,千万别玩合成大西瓜。”


值此过年前无心干活的特殊时期,玩法简单并伴随着魔力极强的「病毒」属性的H5小游戏《合成大西瓜》一夜爆红,到处都有人晒出自己三更半夜不睡觉,一心合成大西瓜的战果。


这款小游戏于1月22日上线,合成大西瓜由于魔性的玩法和音效,还蹭上开年大瓜的热点,一上线就火爆席卷朋友圈,现在出了多种山寨版本合魔改版本,题材五花八门甚至有些变态得让人想去洗眼睛(别学坏)……截至日前,#合成大西瓜#微博话题目前累计阅读数17.4亿,讨论43.2万,曝光量不逊于顶流明星。


这款游戏被很多玩家和程序员进行了改版,现在这款游戏成了大家可以随便更改机制的游戏,今天小编为大家带来合成大西瓜代码分享,一起来看看吧!


合成大西瓜代码一览


if (false) {


BK.Script.loadlib('');


}


var loadingBool = true;


var loadingNum = 0;


window.boot = function () {


var settings = window._CCSettings;


window._CCSettings = undefined;


if ( !settings.debug ) {


var uuids = settings.uuids;


var rawAssets = settings.rawAssets;


var //代码效果参考:http://www.jhylw.com.cn/121232701.html

assetTypes = settings.assetTypes;

var realRawAssets = settings.rawAssets = {};


for (var mount in rawAssets) {


var entries = rawAssets【mount】;


var realEntries = realRawAssets【mount】 = {};


for (var id in entries) {


var entry = entries【id】;


var type = entry【1】;


// retrieve minified raw asset


if (typeof type === 'number') {


entry【1】 = assetTypes【type】;


}


// retrieve uuid


realEntries【uuids【id】 || id】 = entry;


}


}


var scenes = settings.scenes;


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


var scene = scenes【i】;


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


scene.uuid = uuids【scene.uuid】;


}


}


var packedAssets = settings.packedAssets;


for (var packId in packedAssets) {


var packedIds = packedAssets【packId】;


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


if (typeof packedIds【j】 === 'number') {


packedIds【j】 = uuids【packedIds【j】】;


}


}


}


var subpackages = settings.subpackages;


for (var subId in subpackages) {


var uuidArray = subpackages【subId】.uuids;


if (uuidArray) {


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


if (typeof uuidArray【k】 === 'number') {


uuidArray【k】 = uuids【uuidArray【k】】;


}


}


}


}


}


function setLoadingDisplay () {


// Loading splash scene


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


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


cc.loader.onProgress = function (completedCount, totalCount, item) {


loadData.completedCount = completedCount;


loadData.totalCount = totalCount;


if(loadingBool){


var loadintT = document.getElementById("loadingText")


}


var percent = 100 completedCount / totalCount;


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


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


loadintT.innerHTML = 'loading......100' + '%';


setTimeout(function(){


loadingBool = false;


loadintT.remove();


},0.1 1000);


clearInterval(timer);


}


}


loadingNum ++;


// if(loadingBool){


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


// }


// var percent = 100 completedCount / totalCount;


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


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


// loadintT.innerHTML = 'loading......' + parseInt(percent) + '%';


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


// loadingBool = false;


// loadintT.remove();


// }


// }


// loadingNum ++;


// var percent = 100 completedCount / totalCount;


// if (progressBar) {


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


// }


};


splash.style.display = 'block';


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


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


splash.style.display = 'none';


});


}


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


}


if (cc.sys.isMobile) {


if (settings.orientation === 'landscape') {


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


}


else if (settings.orientation === 'portrait') {


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


}


// cc.view.enableAutoFullScreen(【


// cc.sys.BROWSER_TYPE_BAIDU,


// cc.sys.BROWSER_TYPE_WECHAT,


// cc.sys.BROWSER_TYPE_MIUI,


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


cc.view.enableAutoFullScreen(false);


}


// Limit downloading max concurrent task to 2,


// more tasks simultaneously may cause performance draw back on some android system / browsers.


// You can adjust the number based on your own test result, you have to set it before any loading process to take effect.


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


cc.macro.DOWNLOAD_MAX_CONCURRENT = 2;


}


}


// function loadScene(launchScene) {


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


// function () {


// if (cc.sys.isBrowser) {


// // show canvas


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


// canvas.style.visibility = '';


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


// if (div) {


// div.style.backgroundImage = '';


// }


// }


// cc.loader.onProgress = null;


// console.log('Success to load scene: ' + launchScene);


// }


// );


// }


var launchScene = settings.launchScene;


// load scene


// loadScene(launchScene);


var canvas;


if (cc.sys.isBrowser) {


canvas = document.getElementById('GameCanvas');


}


var launchScene = settings.launchScene;


console.log("landscape,",launchScene);


var MainManger = __require("MainManage");


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


};


// jsList


var jsList = settings.jsList;


if (false) {


BK.Script.loadlib();


}


else {


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


if (jsList) {


jsList = jsList.map(function (x) {


return 'src/' + x;


});


jsList.push(bundledScript);


}


else {


jsList = 【bundledScript】;


}


}


var option = {


id: 'GameCanvas',


scenes: settings.scenes,


debugMode: settings.debug ? cc.debug.DebugMode.INFO : cc.debug.DebugMode.ERROR,


showFPS: !false && settings.debug,


frameRate: 60,


jsList: jsList,


groupList: settings.groupList,


collisionMatrix: settings.collisionMatrix,


}


// init assets


cc.AssetLibrary.init({


libraryPath: 'res/import',


rawAssetsBase: 'res/raw-',


rawAssets: settings.rawAssets,


packedAssets: settings.packedAssets,


md5AssetsMap: settings.md5AssetsMap,


subpackages: settings.subpackages


});


cc.game.run(option, onStart);


};


if (false) {


BK.Script.loadlib('');


BK.Script.loadlib();


BK.Script.loadlib('');


var ORIENTATIONS = {


'portrait': 1,


'landscape left': 2,


'landscape right': 3


};


BK.Director.screenMode = ORIENTATIONS【window._CCSettings.orientation】;


initAdapter();


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


initRendererAdapter();


});


var prevPipe = cc.loader.md5Pipe || cc.loader.assetLoader;


window.boot();


}


else if (window.jsb) {


var isRuntime = (typeof loadRuntime === 'function');


if (isRuntime) {


require('src/settings.js');


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


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


}


else {


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++学习企鹅圈】


学习交流,技术探讨,面试指导,简历修改...还有超多源码素材等学习资料,零基础的视频等着你!

相关文章
|
2月前
|
人工智能 JavaScript 开发工具
Yank Note: 一款强大可扩展的本地 Markdown 笔记应用
Yank Note 是一款本地化、高性能、高扩展性、双栏式的开源 Markdown 笔记应用。你可以用它轻松地记录学习笔记、撰写文章、管理待办事项、运行代码片段、制作小工具等。
359 7
Yank Note: 一款强大可扩展的本地 Markdown 笔记应用
|
8月前
|
人工智能 安全 Java
Spring Boot 过滤器 拦截器 监听器
本文介绍了Spring Boot中的过滤器、拦截器和监听器的实现与应用。通过Filter接口和FilterRegistrationBean类,开发者可实现对请求和响应的数据过滤;使用HandlerInterceptor接口,可在控制器方法执行前后进行处理;利用各种监听器接口(如ServletRequestListener、HttpSessionListener等),可监听Web应用中的事件并作出响应。文章还提供了多个代码示例,帮助读者理解如何创建和配置这些组件,适用于构建更高效、安全和可控的Spring Boot应用程序。
786 0
|
12月前
|
存储 缓存 搜索推荐
HTTP500代码怎么解决?常见的5xx网页错误及其原因
本文介绍了如何修复HTTP 500错误及常见的5xx网页错误。500错误表示服务器无法处理请求,可能由文件权限、脚本错误、数据库连接或配置问题引起。作为用户,可尝试重新加载页面、检查URL或清除缓存;作为网站所有者,需检查`.htaccess`文件、服务器日志、插件冲突及PHP版本等。此外,文章还列举了其他5xx错误(如502、503、504等)及其原因,帮助定位和解决服务器端问题,避免影响流量与搜索引擎排名。
8276 4
|
开发者
在代码维护中,Qwen-coder可以通过多种方式提升编程效率和代码质量
Qwen-coder在代码维护中发挥着重要作用,帮助开发者提高代码质量,减少错误,提升开发效率。这些功能使得Qwen-coder成为代码维护和开发过程中的有力助手。
617 52
|
安全 前端开发 Java
Spring Security是如何工作的?
Spring Security 是一个强大的框架,用于保护 Spring 应用程序,提供全面的安全服务,包括身份验证、授权等功能。本文将介绍其核心概念及默认配置。Spring Security 通过与 Spring MVC、Spring Webflux 或 Spring Boot 集成,创建高度可定制的身份验证和访问控制框架。其核心组件包括 Servlet Filters、Authentication 和 Authorization。通过默认的过滤器链和一系列预定义过滤器,Spring Security 可以轻松实现各种安全功能。
1285 3
|
JSON JavaScript 数据格式
详细解读CococCreator跨域访问资源服务器
详细解读CococCreator跨域访问资源服务器
395 0
|
JavaScript 前端开发
javascript获取url信息的常见方法
javascript获取url信息的常见方法
696 2
|
数据库
港澳台人员社会保障号校验
港澳台人员社会保障号校验
1805 0
|
缓存 自然语言处理 BI
CocosCreator3.8研究笔记(二十)CocosCreator UI组件(四)
CocosCreator3.8研究笔记(二十)CocosCreator UI组件(四)
901 0
|
Android开发 iOS开发 容器
CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)(2)
CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)
1399 0

热门文章

最新文章