| @ -0,0 +1,81 @@ | |||
| <!doctype html> | |||
| <html lang="en-us"> | |||
| <head> | |||
| <meta charset="utf-8"> | |||
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | |||
| <title>raylib web game</title> | |||
| <meta name="title" content="raylib web game"> | |||
| <meta name="description" content="New raylib web videogame, developed using raylib videogames library"> | |||
| <meta name="keywords" content="raylib, games, html5, programming, C, C++, library, learn, videogames"> | |||
| <meta name="viewport" content="width=device-width"> | |||
| <!-- Open Graph metatags for sharing --> | |||
| <meta property="og:title" content="raylib web game"> | |||
| <meta property="og:image:type" content="image/png"> | |||
| <meta property="og:image" content="https://www.raylib.com/common/img/raylib_logo.png"> | |||
| <meta property="og:site_name" content="raylib.com"> | |||
| <meta property="og:url" content="https://www.raylib.com/games.html"> | |||
| <meta property="og:description" content="New raylib web videogame, developed using raylib videogames library"> | |||
| <!-- Twitter metatags for sharing --> | |||
| <meta name="twitter:card" content="summary"> | |||
| <meta name="twitter:site" content="@raysan5"> | |||
| <meta name="twitter:title" content="raylib web game"> | |||
| <meta name="twitter:image" content="https://www.raylib.com/common/raylib_logo.png"> | |||
| <meta name="twitter:url" content="https://www.raylib.com/games.html"> | |||
| <meta name="twitter:description" content="New raylib web game, developed using raylib videogames library"> | |||
| <!-- Favicon --> | |||
| <link rel="shortcut icon" href="https://www.raylib.com/favicon.ico"> | |||
| <style> | |||
| canvas.emscripten { border: 0px none; background-color: black; } | |||
| </style> | |||
| <script type='text/javascript' src="https://cdn.jsdelivr.net/gh/eligrey/FileSaver.js/dist/FileSaver.min.js"> </script> | |||
| <script type='text/javascript'> | |||
| function saveFileFromMEMFSToDisk(memoryFSname, localFSname) // This can be called by C/C++ code | |||
| { | |||
| var isSafari = false; // Not supported, navigator.userAgent access is being restricted | |||
| //var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); | |||
| var data = FS.readFile(memoryFSname); | |||
| var blob; | |||
| if (isSafari) blob = new Blob([data.buffer], { type: "application/octet-stream" }); | |||
| else blob = new Blob([data.buffer], { type: "application/octet-binary" }); | |||
| // NOTE: SaveAsDialog is a browser setting. For example, in Google Chrome, | |||
| // in Settings/Advanced/Downloads section you have a setting: | |||
| // 'Ask where to save each file before downloading' - which you can set true/false. | |||
| // If you enable this setting it would always ask you and bring the SaveAsDialog | |||
| saveAs(blob, localFSname); | |||
| } | |||
| </script> | |||
| </head> | |||
| <body> | |||
| <canvas class=emscripten id=canvas oncontextmenu=event.preventDefault() tabindex=-1></canvas> | |||
| <p id="output" /> | |||
| <script> | |||
| var Module = { | |||
| print: (function() { | |||
| var element = document.getElementById('output'); | |||
| if (element) element.value = ''; // clear browser cache | |||
| return function(text) { | |||
| if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(' '); | |||
| console.log(text); | |||
| if (element) { | |||
| element.value += text + "\n"; | |||
| element.scrollTop = element.scrollHeight; // focus on bottom | |||
| } | |||
| }; | |||
| })(), | |||
| canvas: (function() { | |||
| var canvas = document.getElementById('canvas'); | |||
| return canvas; | |||
| })() | |||
| }; | |||
| </script> | |||
| {{{ SCRIPT }}} | |||
| </body> | |||
| </html> | |||