js实现闯关式疯狂像素风格怪兽卡车驾驶操控游戏代码
代码语言:html
所属分类:游戏
代码描述:js实现闯关式疯狂像素风格怪兽卡车驾驶操控游戏代码
代码标签: js 闯关 疯狂 像素 风格 怪兽 卡车 驾驶 操控 游戏 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en-us"> <head> <script src="//repo.bfw.wiki/bfwrepo/js/maddrive/index.wasm.js"></script> <script src="//repo.bfw.wiki/bfwrepo/js/maddrive/index.data.js"></script> <title>Drive Mad</title> </head> <body id="body"> <style> @font-face { font-family: 'baloo 2'; font-style: normal; font-weight: 800; font-display: swap; src: url(baloo2.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD } .fullscreen { position: absolute; width: 100%; height: 100% } .center { text-align: center } .centered { margin-left: auto; margin-right: auto; display: block; text-align: center } #play_overlay { display: none; z-index: 10 } .middle { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) } .middle_vertical { position: absolute; top: 50%; transform: translate(0%, -50%) } .edge { margin-left: auto; margin-right: auto; width: 164px; height: 180px; background-color: #cfdaed; box-shadow: 5px 1px 5px rgba(0, 0, 0, .25); transform: rotate(-5deg) } .box { width: 164px; height: 164px; background-color: #fff; position: relative } .black { width: 132px; height: 156px; background-color: #000; position: absolute; top: 4px; right: 4px; margin: 0 auto } .cover { width: 128px; height: 128px; margin: 2px } .title { font-size: 14px; font-family: 'baloo 2', ubuntu, verdana, sans-serif } .author { font-family: 'baloo 2', ubuntu, verdana, sans-serif; border-spacing: 0; font-size: 14px; color: #ccc; text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; position: absolute; width: 150px; top: 4px; right: 142px; transform-origin: right top; transform: rotate(-90deg) } .loading { margin-top: 20px; margin-bottom: 10px } .description { font-family: 'baloo 2', ubuntu, verdana, sans-serif; display: inline-block; font-size: 16px; line-height: 1.2em; width: 240px } .button { display: inline-block; border: 2px solid #00a2ff; border-radius: 7px; width: 133px; height: 43px; font-size: 16px; line-height: 43px; margin: 0 auto } .overlay_button { display: inline-block; border: 2px solid #000; border-radius: 12px; width: 200px; height: 50px; font-size: 18px; line-height: 50px; margin: 11px } #play_button { color: #333; background-color: #eee } .emscripten_border { position: relative } #gradient { background-image: linear-gradient(135deg, #70e1fd, #00a2ff); position: absolute; top: 0; width: 100%; height: 768px } * { margin: 0; padding: 0 } p, ul, ol, dl { margin-bottom: 1em } h1, h2, h3, h4, h5, h6, p, ul, ol, dl { margin-left: 16px; margin-right: 16px } img { vertical-align: top } html, body { font-family: 'baloo 2', ubuntu, verdana, sans-serif; font-size: 18px; color: #bbb; padding: 0; width: 100%; height: 100%; margin: 0; border: 0; line-height: 1.8; overflow: hidden; display: block } canvas { padding-right: 0; margin-left: auto; margin-right: auto; display: block; margin-top: auto; margin-bottom: auto; position: relative; width: 1024px; height: 768px } div.emscripten { text-align: center } canvas.emscripten { border: 0; background-color: #000 } #status { display: inline-block; width: 100%; font-weight: 700; color: #787878; text-align: center } #modal_parent { display: none; position: fixed; z-index: 1; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: #000; background-color: rgba(0, 0, 0, .4) } .modal_inner { display: none } #play_content { color: #fff; z-index: 10 } #modal_content { position: relative; background-color: #fefefe; margin: auto; padding: 20px; border: 1px solid #888; box-sizing: border-box } .error_message { color: red } .error_text { color: red; font-family: sans-serif; font-size: .8em } #modal_close_button { color: #aaa; position: absolute; right: 15px; top: 10px; font-size: 28px; line-height: 28px; font-weight: 700; transition: .2s } #modal_close_button:hover, #modal_close_button:focus { color: #000; text-decoration: none; cursor: pointer } a:link { color: #00b9fe; text-decoration: none; transition: .2s } a:visited { color: #00b9fe } a:hover, a:active { opacity: .5 } .link_image_button { margin-right: 10px } .playstore075 { width: 153px; height: 45px } .appstore075 { width: 135px; height: 45px } #progress_or_play { margin-top: 10px } #terms_p { font-family: sans-serif; color: #141414; font-size: .7em; margin-bottom: 0 } #terms_p a { color: #f0f0f0 } .deeplink_message { font-size: 1em; color: #f0f0f0; line-height: 1.1em; font-size: 20px } .menu { color: #f0f0f0 } .level_button { border: 2px solid #222; border-radius: 1em; color: #f0f0f0; background-color: #00a2ff; line-height: 1em; height: 2.5em; width: 5em; justify-self: center; position: relative; padding-top: .6em } .grid_element_center { justify-self: center } .level_button_name { font-size: .6em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis } .level_button_number { font-size: 1.2em } .level_button:hover { background-color: #00c2ff } .level_checkmark { position: absolute; right: 0; top: 0; margin: 0; padding: 0; text-align: right; font-size: 1.2em; line-height: 1.2em } .level_button a { color: #f0f0f0; opacity: 1 } .menu_items { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 20px } .menu_header { font-size: 3em; margin-top: 40px } #webview_content { display: none; background-color: transparent; position: absolute; top: 0; width: 100%; height: 768px } .webview { width: 100%; height: 100%; background: 0 0; margin: 0; border: 0; overflow: hidden } </style> <div id="modal_parent"> <div id="modal_content"> <span id="modal_close_button">×</span> <div id="store_link_modal_content" class="modal_inner"></div> <div id="share_file_modal_content" class="modal_inner"></div> </div> </div> <div id="canvas_border" class="emscripten_border"> <div id="play_content" class="middle center"> <div class="edge"> <div class="box"> <div class="black"> <img src="//repo.bfw.wiki/bfwrepo/image/60505c91f2004.png" class="cover" /> <p class="title">Drive Mad</p> <p class="author">Martin Magni</p> </div> </div> </div> <div id="progress_or_play"><progress id="progress" class="loading" value="0" max="100"></progress></div> <p class="description"></p> </div> <canvas class="emscripten" id="canvas" tabindex="-1"></canvas> <div id="gradient"></div> <div id="webview_content"></div> </div> <script type="text/javascript"> var pokiDebug = false; var postRunDone = false; var theDomLoaded = false; var pokiInited = false; var gameReadyToStart = false; var requestedCanvas = false; var adblocker = false; var gameStarted = false; var updatedScreenSize = false; var startupTimeStr = ""; var loadProgressFrac = 0; var fakeProgressPercentStart = 80 + Math.random() * 15; window.addEventListener('DOMContentLoaded', domContentLoaded); window.addEventListener('load', function() { console.log("Load event received"); if (inIframe()) { document.addEventListener('click', ev => { let canvas = document.getElementById('canvas'); if (canvas) { canvas.focus(); } }); } }); function inIframe() { try { return window.self !== window.top; } catch (e) { return true; } } function updateLoadProgress() { let progressElement = document.getElementById('progress'); if (progressElement) { progressElement.value = Math.round(loadProgressFrac * fakeProgressPercentStart); progressElement.max = 100; } if (loadProgressFrac >= 1) { console.log("Loading done"); tryStartGame(); } } function domContentLoaded() { initPokiSdk(); console.log("DOM content loaded event received"); let canvas = document.getElementById('canvas'); canvas.addEventListener("contextmenu", stopContextMenu); if (!postRunDone) { resizeCanvas(false); } window.addEventListener('blur', ev => setGameFocus(false)); window.addEventListener('focus', ev => setGameFocus(true)); canvas.onpointerdown = beginPointerDrag; canvas.onpointerup = endPointerDrag; theDomLoaded = true; } function beginPointerDrag(e) { let canvas = document.getElementById('canvas'); canvas.setPointerCapture(e.pointerId); } function endPointerDrag(e) { let canvas = document.getElementById('canvas'); canvas.releasePointerCapture(e.pointerId); } function setGameFocus(f) { if (postRunDone) { Module.ccall('set_game_focus', 'v', ['number'], [f]); } } function canBeGameGuid(str) { return str && str.match('([A-F]|[0-9]){16}'); } function getMeta(metaName) { const metas = document.getElementsByTagName('meta'); for (let i = 0; i < metas.length; i++) { if (metas[i].getAttribute('name') === metaName) { return metas[i].getAttribute('content'); } } return ''; } function getCSSRgb(color) { return `rgb(${Math.round(color[0])}, ${Math.round(color[1])}, ${Math.round(color[2])})`; } let lastGradientStyleStr = ""; let lastDeepLinkLoadFraction = 0; function getGradientStr(frac) { let fromColor = [frac * 0x70, frac * 0xe1, frac * 0xfd]; let toColor = [frac * 0x00, frac * 0xa2, frac * 0xff]; let str = `linear-gradient(135deg, ${getCSSRgb(fromColor)}, ${getCSSRgb(toColor)})` return str; } function hideOverlayGradient() { var gradient = document.getElementById('gradient'); gradient.style.display = "none"; } var showedStartGameError = false; function setPokiInited() { pokiInited = true; } function initPokiSdk() { setPokiInited(); } function hideOverlay() { var playContent = document.getElementById('play_content'); playContent.style.display = "none"; hideOverlayGradient(); } function startGame() { try { console.log("Registering event listeners"); window.addEventListener("beforeunload", function(event) { Module.ccall('app_terminate_if_necessary', 'v'); }); window.addEventListener("unload", function(event) { Module.ccall('app_terminate_if_necessary', 'v'); }); document.addEventListener("visibilitychange", function() { if (document.visibilityState === 'visible') { Module.ccall('app_resume', 'v'); } else { Module.ccall('app_pause', 'v'); } }); console.log("Confirming accept in app"); try { Module.ccall('user_accepted_and_clicked', 'v'); Module.ccall('set_is_mobile', 'v', ['number'], [matchMedia('(pointer:coarse)').matches]); } catch (err4) {} gameStarted = true; if (!updatedScreenSize) { resizeCanvas(true); } } catch (err) { if (!showedStartGameError) { let foundModuleAsm = false; let additionalInfo = ""; try { if (Module["asm"]) { foundModuleAsm = true; } } catch (err2) {} if (!foundModuleAsm) { additionalInfo += "Could not find Module.asm"; } console.log(`Error when starting game. Try to reload the page. Error message: ${err}. ${additionalInfo}`); showedStartGameError = true; } } } var pokiStopped = true; function pokiEnsureStop() { if (!pokiStopped) { pokiStopped = true; } } function pokiEnsureStart() { if (pokiStopped) { pokiStopped = false; } } var startGameAttempts = 0; var tryStartGameTimeout = null; function tryStartGame() { console.log("tryStartGame()", gameReadyToStart); if (gameReadyToStart) { return; } if (!postRunDone || !theDomLoaded || !pokiInited) { startGameAttempts++; if (startGameAttempts == 20) { return; } if (tryStartGameTimeout != null) { clearTimeout(tryStartGameTimeout); } tryStartGameTimeout = setTimeout(tryStartGame, startGameAttempts * 100); console.log("Not ready to start game yet..."); return; } gameReadyToStart = true; console.log("Starting game"); startGame(); } function simpleLogC(str) { if (postRunDone) { Module.ccall('log_simple', 'v', ['string'], [str]); } else { console.log(str); } } function appErrorC(code, str) { if (postRunDone) { Module.ccall('app_error', 'v', ['number', 'string'], [code, str]); } else { console.error(str, code); } } function simpleAppErrorC(str) { appErrorC(1, str); } function parseUrlArgument(name) { let result = ""; let str = window.location.search; if (str.length > 0 && str[0] == '?') { var arr = str.substr(1).split('&'); for (let i = 0; i < arr.length; i++) { if (arr[i].startsWith(name + "=")) { result = arr[i].substr(name.length + 1); break; } } } return result; } function parseUrlArgumentInt(name) { let str = parseUrlArgument(name); let parsed = parseInt(str); if (isNaN(parsed)) { return 0; } else { return parsed; } } function resizeCanvas(informC) { let iw = window.innerWidth; let ih = window.innerHeight; let canvas = document.getElementById('canvas'); let border = document.getElementById('canvas_border'); canvas.width = iw * window.devicePixelRatio; canvas.height = ih * window.devicePixelRatio; border.style.marginTop = '0px'; let gradient = document.getElementById("gradient"); let webViewContent = document.getElementById("webview_content"); [gradient, webViewContent].forEach(e => { if (e) { e.style.left = '0px'; } }); [canvas, gradient, webViewContent].forEach(e => { if (e) { e.style.width = iw + 'px'; e.style.height = ih + 'px'; e.style.borderRadius = '0px'; } }); if (informC && gameStarted && requestedCanvas) { Module.ccall("update_screen_size", "v", ["number", "number", "number"], [canvas.width, canvas.height, window.devicePixelRatio]); updatedScreenSize = true; } } function stopContextMenu(event) { event.preventDefault(); return false; } var Module = { locateFile: function(path, prefix) { if (prefix == "") { return "" + path; } return prefix + path; }, preRun: [function() { console.log("preRun() called"); }], postRun: [function() { console.log("postRun() called"); document.onfullscreenchange = function() { setTimeout(function() { resizeCanvas(true); if (document.fullscreenElement && gameStarted && requestedCanvas) { let canvas = document.getElementById('canvas'); Module.ccall("update_screen_size", "v", ["number", "number", "number"], [canvas.width, canvas.height, 1]); } }, 500); }; window.addEventListener('resize', (event) => resizeCanvas(true), false); if (theDomLoaded) { resizeCanvas(true); } console.log("Registering keydown listener"); window.addEventListener('keydown', e => { ccall("keydown_browser", "v", ["string"], [e.key]); }); postRunDone = true; }], print: (function() { return function(text) { if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(' '); console.log(text); }; })(), printErr: function(text) { if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(' '); console.error(text); }, canvas: (function() { var canvas = document.getElementById('canvas'); canvas.addEventListener("webglcontextlost", function(e) { alert('WebGL context lost. You will need to reload the page.'); e.preventDefault(); }, false); requestedCanvas = true; return canvas; })(), setStatus: function(text) { if (!Module.setStatus.last) Module.setStatus.last = { time: Date.now(), text: '' }; if (text === Module.setStatus.last.text) return; var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/); var now = Date.now(); if (m && now - Module.setStatus.last.time < 30) return; Module.setStatus.last.time = now; Module.setStatus.last.text = text; if (m) { text = m[1]; loadProgressFrac = parseInt(m[2]) / parseInt(m[4]); } else { loadProgressFrac = 1; } updateLoadProgress(); }, totalDependencies: 0, monitorRunDependencies: function(left) { this.totalDependencies = Math.max(this.totalDependencies, left); } }; var notifications = []; var webViewIframe = null; var storedScripts = []; var webviewDomLoaded = false; async function isUrlFound(url) { try { const response = await fetch(url, { method: 'HEAD', cache: 'no-cache' }); return response.status === 200; } catch (error) { return false; } } function checkHintFileExist(src, li) { isUrlFound(src).then(found => { if (found) { Module.ccall("hint_file_exists", "v", ["number"], [li]); } }); } function postStored() { for (var i = 0; i < storedScripts.length; i++) { webViewIframe.contentWindow.postMessage("eval:" + storedScripts[i], '*'); } storedScripts = []; } function onWebviewDomContentLoaded() { webviewDomLoaded = true; postStored(); } function webViewPostMessage(message) { Module.ccall("app_webview_message", "v", ["string"], [message]); } function webViewError(type, message) { webViewPostMessage(`error|${type}|${message}`); } function webViewClose() { try { var content = document.getElementById("webview_content"); content.style.display = 'none'; if (content.contains(webViewIframe)) { webviewDomLoaded = false; webViewIframe.contentWindow.removeEventListener('DOMContentLoaded', onWebviewDomContentLoaded); content.removeChild(webViewIframe); } setTimeout(function() { Module.ccall("set_game_focus", "v", ["number"], [true]) }, 100); } catch (err) { webViewError("unknown", err); } } function webViewOpen(path) { try { let arr = readLocalFile(path); let html = new TextDecoder("utf-8").decode(arr); if (webViewIframe == null) { window.onmessage = function(e) { webViewPostMessage(e.data); } } html = html.replace("common.js", `webapp/view_common.js`); html = html.replace("common.css", `webapp/view_common.css`); var content = document.getElementById("webview_content"); content.style.display = 'block'; webViewIframe = document.createElement('iframe'); webViewIframe.classList.add('webview'); webViewIframe.allowtransparency = true; content.appendChild(webViewIframe); webViewIframe.contentWindow.document.open(); webviewDomLoaded = false; webViewIframe.contentWindow.addEventListener('DOMContentLoaded', onWebviewDomContentLoaded); webViewIframe.contentWindow.document.write(html); webViewIframe.contentWindow.document.close(); } catch (err) { webViewError("unknown", err); } } function webViewExecuteJS(jsString) { try { if (!webviewDomLoaded) { storedScripts.push(jsString); } else { webViewIframe.contentWindow.postMessage("eval:" + jsString, '*'); } } catch (err) { webViewError("unknown", err); } } function getHostname() { let hostname = window.location.hostname.split(':')[0]; let lengthBytes = lengthBytesUTF8(hostname) + 1; let stringOnWasmHeap = _malloc(lengthBytes); stringToUTF8(hostname, stringOnWasmHeap, lengthBytes); return stringOnWasmHeap; } function parseUrlArgumentString(name) { let str = parseUrlArgument(name); let lengthBytes = lengthBytesUTF8(str) + 1; let stringOnWasmHeap = _malloc(lengthBytes); stringToUTF8(str, stringOnWasmHeap, lengthBytes); return stringOnWasmHeap; } function writeLocalFile(buffer, pathDevice) { let arr = new Uint8Array(buffer); let stream = FS.open(pathDevice, 'w'); FS.write(stream, arr, 0, arr.length, 0); FS.close(stream); } function readLocalFile(path) { let stream = FS.open(path, 'r'); FS.llseek(stream, 0, 2); let fileSize = stream.position; FS.llseek(stream, 0, 0); let buf = new Uint8Array(fileSize); FS.read(stream, buf, 0, fileSize, 0); FS.close(stream); return buf; } function resizeModal(modal, modalContent, maxWidth) { let iw = window.innerWidth; let ih = window.innerHeight; let top = Math.min(0.15 * ih, 100); let w = Math.min(iw, maxWidth); modal.style.display = "block"; modalContent.style.width = w + "px"; modal.style.paddingTop = top + "px"; return w; } function fetchUrl(url, id, useToken) {} function adInit() { setTimeout(() => Module.ccall("ad_on_inited", "v"), 100); } function firebasePause() {} function firebaseResume() {} function adInterstitialLoad() { setTimeout(() => Module.ccall("ad_interstitial_on_loaded", "v", ["number"], [1]), 100); } function adInterstitialShow() { Module.ccall("ad_interstitial_on_showed", "v", ["number"], [1]); } function adRewardedLoad() { setTimeout(() => Module.ccall("ad_rewarded_on_loaded", "v", ["number"], [1]), 100); } function adRewardedShow() { pokiEnsureStop(); Module.ccall("ad_rewarded_on_reward", "v"); Module.ccall("ad_rewarded_on_showed", "v", ["number"], [true]); } function firebaseDeinit() {} function currentTimeSecondsRound() { return Math.round(Date.now() / 1000); } </script> <script type="text/javascript"> var Module = typeof Module != "undefined" ? Module : {}; if (!Module.expectedDataFileDownloads) { Module.expectedDataFileDownloads = 0 } Module.expectedDataFileDownloads++; (function() { if (Module["ENVIRONMENT_IS_PTHREAD"]) return; var loadPackage = function(metadata) { var PACKAGE_PATH = ""; if (typeof window === "object") { PACKAGE_PATH = window["encodeURIComponent"](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf("/")) + "/") } else if (typeof process === "undefined" && typeof location !== "undefined") { PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf("/")) + "/") } var PACKAGE_NAME = "index.data"; var REMOTE_PACKAGE_BASE = "index.data"; if (typeof Module["locateFilePackage"] === "function" && !Module["locateFile"]) { Module["locateFile"] = Module["locateFilePackage"]; err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)") } var REMOTE_PACKAGE_NAME = Module["locateFile"] ? Module["locateFile"](REMOTE_PACKAGE_BASE, "") : REMOTE_PACKAGE_BASE; var REMOTE_PACKAGE_SIZE = metadata["remote_package_size"]; function fetchRemotePackage(packageName, packageSize, callback, errback) { if (typeof process === "object" && typeof process.versions === "object" && typeof process.versions.node === "string") { require("fs").readFile(packageName, function(err, contents) { if (err) { errback(err) } else { callback(contents.buffer) } }); return } var xhr = new XMLHttpRequest; xhr.open("GET", window["index.data"], true); xhr.responseType = "arraybuffer"; xhr.onprogress = function(event) { var url = packageName; var size = packageSize; if (event.total) size = event.total; if (event.loaded) { if (!xhr.addedTotal) { xhr.addedTotal = true; if (!Module.dataFileDownloads) Module.dataFileDownloads = {}; Module.dataFileDownloads[url] = { loaded: event.loaded, total: size } } else { Module.dataFileDownloads[url].loaded = event.loaded } var total = 0; var loaded = 0; var num = 0; for (var download in Module.dataFileDownloads) { var data = Module.dataFileDownloads[download]; total += data.total; loaded += data.loaded; num++ } total = Math.ceil(total * Module.expectedDataFileDownloads / num); if (Module["setStatus"]) Module["setStatus"]("Downloading data... (" + loaded + "/" + total + ")") } else if (!Module.dataFileDownloads) { if (Module["setStatus"]) Module["setStatus"]("Downloading data...") } }; xhr.onerror = function(event) { throw new Error("NetworkError for: " + packageName) }; xhr.onload = function(event) { if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || xhr.status == 0 && xhr.response) { var packageData = xhr.response; callback(packageData) } else { throw new Error(xhr.statusText + " : " + xhr.responseURL) } }; xhr.send(null) } function handleError(error) { console.error("package error:", error) } var fetchedCallback = null; var fetched = Module["getPreloadedPackage"] ? Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null; if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) { if (fetchedCallback) { fetchedCallback(data); fetchedCallback = null } else { fetched = data } }, handleError); function runWithFS() { function assert(check, msg) { if (!check) throw msg + (new Error).stack } Module["FS_createPath"]("/", "assets", true, true); Module["FS_createPath"]("/assets", "blocks", true, true); Module["FS_createPath"]("/assets", "views", true, true); Module["FS_createPath"]("/assets", "games", true, true); Module["FS_createPath"]("/assets", "sounds", true, true); function DataRequest(start, end, audio) { this.start = start; this.end = end; this.audio = audio } DataRequest.prototype = { requests: {}, open: function(mode, name) { this.name = name; this.requests[name] = this; Module["addRunDependency"]("fp " + this.name) }, send: function() {}, onload: function() { var byteArray = this.byteArray.subarray(this.start, this.end); this.finish(byteArray) }, finish: function(byteArray) { var that = this; Module["FS_createDataFile"](this.name, null, byteArray, true, true, true); Module["removeRunDependency"]("fp " + that.name); this.requests[this.name] = null } }; var files = metadata["files"]; for (var i = 0; i < files.length; ++i) { new DataRequest(files[i]["start"], files[i]["end"], files[i]["audio"] || 0).open("GET", files[i]["filename"]) } function processPackageData(arrayBuffer) { assert(arrayBuffer, "Loading data file failed."); assert(arrayBuffer instanceof ArrayBuffer, "bad input to processPackageData"); var byteArray = new Uint8Array(arrayBuffer); DataRequest.prototype.byteArray = byteArray; var files = metadata["files"]; for (var i = 0; i < files.length; ++i) { DataRequest.prototype.requests[files[i].filename].onload() } Module["removeRunDependency"]("datafile_index.data") } Module["addRunDependency"]("datafile_index.data"); if (!Module.preloadResults) Module.preloadResults = {}; Module.preloadResults[PACKAGE_NAME] = { fromCache: false }; if (fetched) { processPackageData(fetched); fetched = null } else { fetchedCallback = processPackageData } } if (Module["calledRun"]) { runWithFS() } else { if (!Module["preRun"]) Module["preRun"] = []; Module["preRun"].push(runWithFS) } }; loadPackage({ "files": [{ "filename": "/assets/blocks/ACCELEROMETER_V", "start": 0, "end": 313 }, { "filename": "/assets/blocks/ARCH", "start": 313, "end": 490 }, { "filename": "/assets/blocks/BALL", "start": 490, "end": 635 }, { "filename": "/assets/blocks/BOX", "start": 635, "end": 850 }, { "filename": "/assets/blocks/BRICKS", "start": 850, "end": 1033 }, { "filename": "/assets/blocks/BUTTERFLY", "start": 1033, "end": 2330 }, { "filename": "/assets/blocks/BUTTON", "start": 2330, "end": 2853 }, { "filename": "/assets/blocks/BUTTON_B", "start": 2853, "end": 3738 }, { "filename": "/assets/blocks/CAMERA_ORBIT", "start": 3738, "end": 5126 }, { "filename": "/assets/blocks/COMMENT", "start": 5126, "end": 5240 }, { "filename": "/assets/blocks/CpF_LIST_ELEMENT_Cp", "start": 5240, "end": 5606 }, { "filename": "/assets/blocks/DASH_CAT", "start": 5606, "end": 7471 }, { "filename": "/assets/blocks/DINO", "start": 7471, "end": 12090 }, { "filename": "/assets/blocks/DINO_RED", "start": 12090, "end": 13825 }, { "filename": "/assets/blocks/DIRT", "start": 13825, "end": 13918 }, { "filename": "/assets/blocks/DIRT_B", "start": 13918, "end": 14097 }, { "filename": "/assets/blocks/DIRT_SLAB", "start": 14097, "end": 14219 }, { "filename": "/assets/blocks/ECpC_SET_VAR_E", "start": 14219, "end": 14596 }, { "filename": "/assets/blocks/ECVV_SET_ANG_LIMITS_E", "start": 14596, "end": 15053 }, { "filename": "/assets/blocks/ECVV_SET_ANG_MOTOR_E", "start": 15053, "end": 15508 }, { "filename": "/assets/blocks/ECVV_SET_ANG_SPRING_E", "start": 15508, "end": 15963 }, { "filename": "/assets/blocks/ECVV_SET_LIN_LIMITS_E", "start": 15963, "end": 16418 }, { "filename": "/assets/blocks/ECVV_SET_LIN_MOTOR_E", "start": 16418, "end": 16874 }, { "filename": "/assets/blocks/ECVV_SET_LIN_SPRING_E", "start": 16874, "end": 17324 }, { "filename": "/assets/blocks/EC_SET_VAR_E", "start": 17324, "end": 17579 }, { "filename": "/assets/blocks/EFFF_VOLUME_PITCH_E", "start": 17579, "end": 18022 }, { "filename": "/assets/blocks/EFF_LOOP_EFE", "start": 18022, "end": 18392 }, { "filename": "/assets/blocks/EFF_SET_SCORE_E", "start": 18392, "end": 18776 }, { "filename": "/assets/blocks/EFF_SFX_PLAY_FE", "start": 18776, "end": 19158 }, { "filename": "/assets/blocks/EFpF_SET_VAR_E", "start": 19158, "end": 19532 }, { "filename": "/assets/blocks/EFpO_MENU_ITEM_E", "start": 19532, "end": 19904 }, { "filename": "/assets/blocks/EFp_DEC_VAR_E", "start": 19904, "end": 20170 }, { "filename": "/assets/blocks/EFp_INC_VAR_E", "start": 20170, "end": 20442 }, { "filename": "/assets/blocks/EF_INSPECT_E", "start": 20442, "end": 20791 }, { "filename": "/assets/blocks/EF_RANDOM_SEED_E", "start": 20791, "end": 21179 }, { "filename": "/assets/blocks/EF_SET_VAR_E", "start": 21179, "end": 21430 }, { "filename": "/assets/blocks/EF_SFX_STOP_E", "start": 21430, "end": 21806 }, { "filename": "/assets/blocks/EOF_SET_BOUNCE_E", "start": 21806, "end": 22198 }, { "filename": "/assets/blocks/EOF_SET_FRICTION_E", "start": 22198, "end": 22594 }, { "filename": "/assets/blocks/EOF_SET_MASS_E", "start": 22594, "end": 22977 }, { "filename": "/assets/blocks/EOOV_ADD_CONSTRAINT_EC", "start": 22977, "end": 23428 }, { "filename": "/assets/blocks/EOpO_SET_VAR_E", "start": 23428, "end": 23802 }, { "filename": "/assets/blocks/EOT_SET_VISIBLE_E", "start": 23802, "end": 24180 }, { "filename": "/assets/blocks/EOVQ_SET_POS_E", "start": 24180, "end": 24642 }, { "filename": "/assets/blocks/EOVVV_ADD_FORCE_E", "start": 24642, "end": 25155 }, { "filename": "/assets/blocks/EOVV_SET_LOCKED_E", "start": 25155, "end": 25617 }, { "filename": "/assets/blocks/EOVV_SET_VEL_E", "start": 25617, "end": 26075 }, { "filename": "/assets/blocks/EO_COLLISION_EOFVE", "start": 26075, "end": 26596 }, { "filename": "/assets/blocks/EO_CREATE_EO", "start": 26596, "end": 26972 }, { "filename": "/assets/blocks/EO_DESTROY_E", "start": 26972, "end": 27349 }, { "filename": "/assets/blocks/EO_INSPECT_E", "start": 27349, "end": 27697 }, { "filename": "/assets/blocks/EO_SET_VAR_E", "start": 27697, "end": 27948 }, { "filename": "/assets/blocks/EQpQ_SET_VAR_E", "start": 27948, "end": 28324 }, { "filename": "/assets/blocks/EQ_INSPECT_E", "start": 28324, "end": 28675 }, { "filename": "/assets/blocks/EQ_SET_VAR_E", "start": 28675, "end": 28928 }, { "filename": "/assets/blocks/ETpT_SET_VAR_E", "start": 28928, "end": 29302 }, { "filename": "/assets/blocks/ET_IF_EEE", "start": 29302, "end": 29666 }, { "filename": "/assets/blocks/ET_INSPECT_E", "start": 29666, "end": 30015 }, { "filename": "/assets/blocks/ET_SET_VAR_E", "start": 30015, "end": 30265 }, { "filename": "/assets/blocks/EVpV_SET_VAR_E", "start": 30265, "end": 30640 }, { "filename": "/assets/blocks/EVQF_SET_CAM_E", "start": 30640, "end": 31090 }, { "filename": "/assets/blocks/EVQ_SET_LIT_E", "start": 31090, "end": 31487 }, { "filename": "/assets/blocks/EV_INSPECT_E", "start": 31487, "end": 31835 }, { "filename": "/assets/blocks/EV_SET_GRAVITY_E", "start": 31835, "end": 32214 }, { "filename": "/assets/blocks/EV_SET_VAR_E", "start": 32214, "end": 32466 }, { "filename": "/assets/blocks/E_BUT_SENSOR_EE", "start": 32466, "end": 32836 }, { "filename": "/assets/blocks/E_JOY_SENSOR_VE", "start": 32836, "end": 33198 }, { "filename": "/assets/blocks/E_LATE_UPDATE_EE", "start": 33198, "end": 33563 }, { "filename": "/assets/blocks/E_LOSE_E", "start": 33563, "end": 33936 }, { "filename": "/assets/blocks/E_PLAY_EE", "start": 33936, "end": 34298 }, { "filename": "/assets/blocks/E_SCREENSHOT_EE", "start": 34298, "end": 34687 }, { "filename": "/assets/blocks/E_SWIPE_EVE", "start": 34687, "end": 35059 }, { "filename": "/assets/blocks/E_TOUCH_EFFE", "start": 35059, "end": 35494 }, { "filename": "/assets/blocks/E_WIN_E", "start": 35494, "end": 35871 }, { "filename": "/assets/blocks/FALSE_T", "start": 35871, "end": 36118 }, { "filename": "/assets/blocks/FFF_EULER_Q", "start": 36118, "end": 36507 }, { "filename": "/assets/blocks/FFF_JOIN_V", "start": 36507, "end": 36894 }, { "filename": "/assets/blocks/FF_ADD_F", "start": 36894, "end": 37193 }, { "filename": "/assets/blocks/FF_DIV_F", "start": 37193, "end": 37487 }, { "filename": "/assets/blocks/FF_EQL_T", "start": 37487, "end": 37788 }, { "filename": "/assets/blocks/FF_GT_T", "start": 37788, "end": 38097 }, { "filename": "/assets/blocks/FF_LOG_F", "start": 38097, "end": 38413 }, { "filename": "/assets/blocks/FF_LT_T", "start": 38413, "end": 38720 }, { "filename": "/assets/blocks/FF_MAX_F", "start": 38720, "end": 39025 }, { "filename": "/assets/blocks/FF_MIN_F", "start": 39025, "end": 39331 }, { "filename": "/assets/blocks/FF_MOD_F", "start": 39331, "end": 39625 }, { "filename": "/assets/blocks/FF_MUL_F", "start": 39625, "end": 39930 }, { "filename": "/assets/blocks/FF_POW_F", "start": 39930, "end": 40229 }, { "filename": "/assets/blocks/FF_RANDOM_F", "start": 40229, "end": 40545 }, { "filename": "/assets/blocks/FF_S2W_VV", "start": 40545, "end": 40876 }, { "filename": "/assets/blocks/FF_SUB_F", "start": 40876, "end": 41174 }, { "filename": "/assets/blocks/FLOWERS", "start": 41174, "end": 41311 }, { "filename": "/assets/blocks/FOLDER_EMPTY", "start": 41311, "end": 41451 }, { "filename": "/assets/blocks/FOLDER_LOCKED", "start": 41451, "end": 41644 }, { "filename": "/assets/blocks/FOLDER_UNKNOWN", "start": 41644, "end": 41809 }, { "filename": "/assets/blocks/FOLIAGE", "start": 41809, "end": 41901 }, { "filename": "/assets/blocks/FOLIAGE_B", "start": 41901, "end": 42076 }, { "filename": "/assets/blocks/FOLIAGE_BOT", "start": 42076, "end": 42209 }, { "filename": "/assets/blocks/FOLIAGE_SLAB", "start": 42209, "end": 42370 }, { "filename": "/assets/blocks/FOLIAGE_TOP", "start": 42370, "end": 42499 }, { "filename": "/assets/blocks/FpF_LIST_ELEMENT_Fp", "start": 42499, "end": 42861 }, { "filename": "/assets/blocks/FRAME_F", "start": 42861, "end": 43071 }, { "filename": "/assets/blocks/F_ABS_F", "start": 43071, "end": 43288 }, { "filename": "/assets/blocks/F_CEIL_F", "start": 43288, "end": 43506 }, { "filename": "/assets/blocks/F_COS_F", "start": 43506, "end": 43724 }, { "filename": "/assets/blocks/F_FLOOR_F", "start": 43724, "end": 43945 }, { "filename": "/assets/blocks/F_NEG_F", "start": 43945, "end": 44158 }, { "filename": "/assets/blocks/F_ROUND_F", "start": 44158, "end": 44378 }, { "filename": "/assets/blocks/F_SIN_F", "start": 44378, "end": 44600 }, { "filename": "/assets/blocks/GOAL", "start": 44600, "end": 45039 }, { "filename": "/assets/blocks/GRASS_A", "start": 45039, "end": 45182 }, { "filename": "/assets/blocks/GRASS_B", "start": 45182, "end": 45344 }, { "filename": "/assets/blocks/L2R", "start": 45344, "end": 45452 }, { "filename": "/assets/blocks/MARKER", "start": 45452, "end": 45565 }, { "filename": "/assets/blocks/MOTOR_X", "start": 45565, "end": 46196 }, { "filename": "/assets/blocks/MOTOR_Y", "start": 46196, "end": 47053 }, { "filename": "/assets/blocks/MOTOR_Z", "start": 47053, "end": 47710 }, { "filename": "/assets/blocks/MULTI_IN", "start": 47710, "end": 47819 }, { "filename": "/assets/blocks/MULTI_IN_E", "start": 47819, "end": 47932 }, { "filename": "/assets/blocks/MULTI_OUT", "start": 47932, "end": 48044 }, { "filename": "/assets/blocks/MULTI_OUT_E", "start": 48044, "end": 48159 }, { "filename": "/assets/blocks/NONE", "start": 48159, "end": 48369 }, { "filename": "/assets/blocks/NUMBER_F", "start": 48369, "end": 48618 }, { "filename": "/assets/blocks/OBSTACLE", "start": 48618, "end": 48746 }, { "filename": "/assets/blocks/OO_EQL_T", "start": 48746, "end": 49049 }, { "filename": "/assets/blocks/OpF_LIST_ELEMENT_Op", "start": 49049, "end": 49410 }, { "filename": "/assets/blocks/O_GET_POS_VQ", "start": 49410, "end": 49744 }, { "filename": "/assets/blocks/O_GET_SIZE_VV", "start": 49744, "end": 50068 }, { "filename": "/assets/blocks/O_GET_VEL_VV", "start": 50068, "end": 50400 }, { "filename": "/assets/blocks/PARTICLE", "start": 50400, "end": 50512 }, { "filename": "/assets/blocks/PASS_THROUGH", "start": 50512, "end": 50636 }, { "filename": "/assets/blocks/QpF_LIST_ELEMENT_Qp", "start": 50636, "end": 51e3 }, { "filename": "/assets/blocks/QQF_LERP_Q", "start": 51e3, "end": 51389 }, { "filename": "/assets/blocks/QQ_MUL_Q", "start": 51389, "end": 51692 }, { "filename": "/assets/blocks/QUATERNION_Q", "start": 51692, "end": 52037 }, { "filename": "/assets/blocks/Q_EULER_FFF", "start": 52037, "end": 52426 }, { "filename": "/assets/blocks/Q_INV_Q", "start": 52426, "end": 52641 }, { "filename": "/assets/blocks/SCREEN_SIZE_FF", "start": 52641, "end": 52956 }, { "filename": "/assets/blocks/SCRIPT", "start": 52956, "end": 53102 }, { "filename": "/assets/blocks/SFX_Fp", "start": 53102, "end": 53424 }, { "filename": "/assets/blocks/SHRUB", "start": 53424, "end": 53623 }, { "filename": "/assets/blocks/SLATE", "start": 53623, "end": 53717 }, { "filename": "/assets/blocks/SLATE_B", "start": 53717, "end": 53922 }, { "filename": "/assets/blocks/SLATE_BOT", "start": 53922, "end": 54060 }, { "filename": "/assets/blocks/SLATE_NE", "start": 54060, "end": 54173 }, { "filename": "/assets/blocks/SLATE_NW", "start": 54173, "end": 54293 }, { "filename": "/assets/blocks/SLATE_SE", "start": 54293, "end": 54409 }, { "filename": "/assets/blocks/SLATE_SW", "start": 54409, "end": 54529 }, { "filename": "/assets/blocks/SLATE_TOP", "start": 54529, "end": 54653 }, { "filename": "/assets/blocks/SLIDER", "start": 54653, "end": 56555 }, { "filename": "/assets/blocks/SLIDER_X", "start": 56555, "end": 56835 }, { "filename": "/assets/blocks/SLIDER_Y", "start": 56835, "end": 57156 }, { "filename": "/assets/blocks/SLIDER_Z", "start": 57156, "end": 57454 }, { "filename": "/assets/blocks/SPHERE", "start": 57454, "end": 57594 }, { "filename": "/assets/blocks/STEEL", "start": 57594, "end": 57734 }, { "filename": "/assets/blocks/STICK_DE", "start": 57734, "end": 57885 }, { "filename": "/assets/blocks/STICK_DN", "start": 57885, "end": 58037 }, { "filename": "/assets/blocks/STICK_DS", "start": 58037, "end": 58194 }, { "filename": "/assets/blocks/STICK_DW", "start": 58194, "end": 58352 }, { "filename": "/assets/blocks/STICK_NE", "start": 58352, "end": 58506 }, { "filename": "/assets/blocks/STICK_NW", "start": 58506, "end": 58669 }, { "filename": "/assets/blocks/STICK_SE", "start": 58669, "end": 58826 }, { "filename": "/assets/blocks/STICK_SW", "start": 58826, "end": 58986 }, { "filename": "/assets/blocks/STICK_UE", "start": 58986, "end": 59140 }, { "filename": "/assets/blocks/STICK_UN", "start": 59140, "end": 59310 }, { "filename": "/assets/blocks/STICK_US", "start": 59310, "end": 59467 }, { "filename": "/assets/blocks/STICK_UW", "start": 59467, "end": 59622 }, { "filename": "/assets/blocks/STICK_X", "start": 59622, "end": 59764 }, { "filename": "/assets/blocks/STICK_Y", "start": 59764, "end": 59913 }, { "filename": "/assets/blocks/STICK_Z", "start": 59913, "end": 60051 }, { "filename": "/assets/blocks/STONE", "start": 60051, "end": 60145 }, { "filename": "/assets/blocks/STONE_B", "start": 60145, "end": 60322 }, { "filename": "/assets/blocks/STONE_BLOCK", "start": 60322, "end": 60520 }, { "filename": "/assets/blocks/STONE_BOT", "start": 60520, "end": 60658 }, { "filename": "/assets/blocks/STONE_LOWER", "start": 60658, "end": 60799 }, { "filename": "/assets/blocks/STONE_PILLAR", "start": 60799, "end": 60954 }, { "filename": "/assets/blocks/STONE_SLAB", "start": 60954, "end": 61102 }, { "filename": "/assets/blocks/STONE_TOP", "start": 61102, "end": 61227 }, { "filename": "/assets/blocks/SWIPE_CHICK", "start": 61227, "end": 64004 }, { "filename": "/assets/blocks/THIS_O", "start": 64004, "end": 64119 }, { "filename": "/assets/blocks/TILT_BALL", "start": 64119, "end": 64366 }, { "filename": "/assets/blocks/TpF_LIST_ELEMENT_Tp", "start": 64366, "end": 64728 }, { "filename": "/assets/blocks/TRUE_T", "start": 64728, "end": 64974 }, { "filename": "/assets/blocks/TT_AND_T", "start": 64974, "end": 65267 }, { "filename": "/assets/blocks/TT_EQL_T", "start": 65267, "end": 65568 }, { "filename": "/assets/blocks/TT_OR_T", "start": 65568, "end": 65859 }, { "filename": "/assets/blocks/T_NOT_T", "start": 65859, "end": 66073 }, { "filename": "/assets/blocks/VAR_Cp", "start": 66073, "end": 66326 }, { "filename": "/assets/blocks/VAR_Fp", "start": 66326, "end": 66575 }, { "filename": "/assets/blocks/VAR_Op", "start": 66575, "end": 66825 }, { "filename": "/assets/blocks/VAR_Qp", "start": 66825, "end": 67077 }, { "filename": "/assets/blocks/VAR_Tp", "start": 67077, "end": 67327 }, { "filename": "/assets/blocks/VAR_Vp", "start": 67327, "end": 67577 }, { "filename": "/assets/blocks/VECTOR_V", "start": 67577, "end": 67920 }, { "filename": "/assets/blocks/VF_AXIS_ANG_Q", "start": 67920, "end": 68245 }, { "filename": "/assets/blocks/VF_MUL_V", "start": 68245, "end": 68546 }, { "filename": "/assets/blocks/VpF_LIST_ELEMENT_Vp", "start": 68546, "end": 68909 }, { "filename": "/assets/blocks/VQ_MUL_V", "start": 68909, "end": 69211 }, { "filename": "/assets/blocks/VVVV_LINE_VS_PLANE_V", "start": 69211, "end": 69656 }, { "filename": "/assets/blocks/VV_ADD_V", "start": 69656, "end": 69955 }, { "filename": "/assets/blocks/VV_CROSS_V", "start": 69955, "end": 70260 }, { "filename": "/assets/blocks/VV_DIST_F", "start".........完整代码请登录后点击上方下载按钮下载查看
网友评论0