holywyvern/carbuncle

View on GitHub
website/public/data/examples/graphics/image_generation/mruby-carbuncle.html

Summary

Maintainability
Test Coverage
<!doctypehtml>
<html lang=en-us>

<head>
    <meta charset=utf-8>
    <meta content="text/html; charset=utf-8" http-equiv=Content-Type>
    <title>Carbuncle</title>
    <meta content="Carbuncle HTML5 GAME" name=title>
    <meta content="New HTML5 videogame, developed using Carbuncle videogames library" name=description>
    <meta content="raylib, games, html5, programming, C, C++, library, learn, videogames" name=keywords>
    <meta content="width=device-width" name=viewport>
    <meta content="Carbuncle HTML5 GAME" property=og:title>
    <meta content=image/png property=og:image:type>
    <meta content=https://holywyvern.github.io/carbuncle/img/logo.svg property=og:image>
    <meta content=https://holywyvern.github.io/carbuncle/ property=og:url>
    <meta content="Carbuncle Game Engine" property=og:site_name>
    <meta content="Carbuncle Game Developed for the web" property=og:description>
    <meta content=summary name=twitter:card>
    <meta content=@emegemegames name=twitter:site>
    <meta content="Carbuncle HTML5 GAME" name=twitter:title>
    <meta content="Carbuncle Game Developed for the web" name=twitter:description>
    <meta content=https://holywyvern.github.io/carbuncle/img/logo.svg name=twitter:image>
    <meta content=https://holywyvern.github.io/carbuncle/img/logo.svg name=twitter:url>
    <link href=https://holywyvern.github.io/carbuncle/favicon.ico rel="shortcut icon">
    <style>
    body {
        font-family: arial;
        margin: 0;
        padding: none;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        overflow: hidden
    }
    
    .container {
        position: absolute;
        overflow: hidden;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        background: #000
    }
    
    .loader {
        margin: 100px auto;
        font-size: 25px;
        width: 1em;
        height: 1em;
        border-radius: 50%;
        position: relative;
        text-indent: -9999em;
        -webkit-animation: load5 1.1s infinite ease;
        animation: load5 1.1s infinite ease;
        -webkit-transform: translateZ(0);
        -ms-transform: translateZ(0);
        transform: translateZ(0)
    }
    
    @-webkit-keyframes load5 {
        0%,
        100% {
            box-shadow: 0 -2.6em 0 0 #fff, 1.8em -1.8em 0 0 rgba(255, 255, 255, .2), 2.5em 0 0 0 rgba(255, 255, 255, .2), 1.75em 1.75em 0 0 rgba(255, 255, 255, .2), 0 2.5em 0 0 rgba(255, 255, 255, .2), -1.8em 1.8em 0 0 rgba(255, 255, 255, .2), -2.6em 0 0 0 rgba(255, 255, 255, .5), -1.8em -1.8em 0 0 rgba(255, 255, 255, .7)
        }
        12.5% {
            box-shadow: 0 -2.6em 0 0 rgba(255, 255, 255, .7), 1.8em -1.8em 0 0 #fff, 2.5em 0 0 0 rgba(255, 255, 255, .2), 1.75em 1.75em 0 0 rgba(255, 255, 255, .2), 0 2.5em 0 0 rgba(255, 255, 255, .2), -1.8em 1.8em 0 0 rgba(255, 255, 255, .2), -2.6em 0 0 0 rgba(255, 255, 255, .2), -1.8em -1.8em 0 0 rgba(255, 255, 255, .5)
        }
        25% {
            box-shadow: 0 -2.6em 0 0 rgba(255, 255, 255, .5), 1.8em -1.8em 0 0 rgba(255, 255, 255, .7), 2.5em 0 0 0 #fff, 1.75em 1.75em 0 0 rgba(255, 255, 255, .2), 0 2.5em 0 0 rgba(255, 255, 255, .2), -1.8em 1.8em 0 0 rgba(255, 255, 255, .2), -2.6em 0 0 0 rgba(255, 255, 255, .2), -1.8em -1.8em 0 0 rgba(255, 255, 255, .2)
        }
        37.5% {
            box-shadow: 0 -2.6em 0 0 rgba(255, 255, 255, .2), 1.8em -1.8em 0 0 rgba(255, 255, 255, .5), 2.5em 0 0 0 rgba(255, 255, 255, .7), 1.75em 1.75em 0 0 #fff, 0 2.5em 0 0 rgba(255, 255, 255, .2), -1.8em 1.8em 0 0 rgba(255, 255, 255, .2), -2.6em 0 0 0 rgba(255, 255, 255, .2), -1.8em -1.8em 0 0 rgba(255, 255, 255, .2)
        }
        50% {
            box-shadow: 0 -2.6em 0 0 rgba(255, 255, 255, .2), 1.8em -1.8em 0 0 rgba(255, 255, 255, .2), 2.5em 0 0 0 rgba(255, 255, 255, .5), 1.75em 1.75em 0 0 rgba(255, 255, 255, .7), 0 2.5em 0 0 #fff, -1.8em 1.8em 0 0 rgba(255, 255, 255, .2), -2.6em 0 0 0 rgba(255, 255, 255, .2), -1.8em -1.8em 0 0 rgba(255, 255, 255, .2)
        }
        62.5% {
            box-shadow: 0 -2.6em 0 0 rgba(255, 255, 255, .2), 1.8em -1.8em 0 0 rgba(255, 255, 255, .2), 2.5em 0 0 0 rgba(255, 255, 255, .2), 1.75em 1.75em 0 0 rgba(255, 255, 255, .5), 0 2.5em 0 0 rgba(255, 255, 255, .7), -1.8em 1.8em 0 0 #fff, -2.6em 0 0 0 rgba(255, 255, 255, .2), -1.8em -1.8em 0 0 rgba(255, 255, 255, .2)
        }
        75% {
            box-shadow: 0 -2.6em 0 0 rgba(255, 255, 255, .2), 1.8em -1.8em 0 0 rgba(255, 255, 255, .2), 2.5em 0 0 0 rgba(255, 255, 255, .2), 1.75em 1.75em 0 0 rgba(255, 255, 255, .2), 0 2.5em 0 0 rgba(255, 255, 255, .5), -1.8em 1.8em 0 0 rgba(255, 255, 255, .7), -2.6em 0 0 0 #fff, -1.8em -1.8em 0 0 rgba(255, 255, 255, .2)
        }
        87.5% {
            box-shadow: 0 -2.6em 0 0 rgba(255, 255, 255, .2), 1.8em -1.8em 0 0 rgba(255, 255, 255, .2), 2.5em 0 0 0 rgba(255, 255, 255, .2), 1.75em 1.75em 0 0 rgba(255, 255, 255, .2), 0 2.5em 0 0 rgba(255, 255, 255, .2), -1.8em 1.8em 0 0 rgba(255, 255, 255, .5), -2.6em 0 0 0 rgba(255, 255, 255, .7), -1.8em -1.8em 0 0 #fff
        }
    }
    
    @keyframes load5 {
        0%,
        100% {
            box-shadow: 0 -2.6em 0 0 #fff, 1.8em -1.8em 0 0 rgba(255, 255, 255, .2), 2.5em 0 0 0 rgba(255, 255, 255, .2), 1.75em 1.75em 0 0 rgba(255, 255, 255, .2), 0 2.5em 0 0 rgba(255, 255, 255, .2), -1.8em 1.8em 0 0 rgba(255, 255, 255, .2), -2.6em 0 0 0 rgba(255, 255, 255, .5), -1.8em -1.8em 0 0 rgba(255, 255, 255, .7)
        }
        12.5% {
            box-shadow: 0 -2.6em 0 0 rgba(255, 255, 255, .7), 1.8em -1.8em 0 0 #fff, 2.5em 0 0 0 rgba(255, 255, 255, .2), 1.75em 1.75em 0 0 rgba(255, 255, 255, .2), 0 2.5em 0 0 rgba(255, 255, 255, .2), -1.8em 1.8em 0 0 rgba(255, 255, 255, .2), -2.6em 0 0 0 rgba(255, 255, 255, .2), -1.8em -1.8em 0 0 rgba(255, 255, 255, .5)
        }
        25% {
            box-shadow: 0 -2.6em 0 0 rgba(255, 255, 255, .5), 1.8em -1.8em 0 0 rgba(255, 255, 255, .7), 2.5em 0 0 0 #fff, 1.75em 1.75em 0 0 rgba(255, 255, 255, .2), 0 2.5em 0 0 rgba(255, 255, 255, .2), -1.8em 1.8em 0 0 rgba(255, 255, 255, .2), -2.6em 0 0 0 rgba(255, 255, 255, .2), -1.8em -1.8em 0 0 rgba(255, 255, 255, .2)
        }
        37.5% {
            box-shadow: 0 -2.6em 0 0 rgba(255, 255, 255, .2), 1.8em -1.8em 0 0 rgba(255, 255, 255, .5), 2.5em 0 0 0 rgba(255, 255, 255, .7), 1.75em 1.75em 0 0 #fff, 0 2.5em 0 0 rgba(255, 255, 255, .2), -1.8em 1.8em 0 0 rgba(255, 255, 255, .2), -2.6em 0 0 0 rgba(255, 255, 255, .2), -1.8em -1.8em 0 0 rgba(255, 255, 255, .2)
        }
        50% {
            box-shadow: 0 -2.6em 0 0 rgba(255, 255, 255, .2), 1.8em -1.8em 0 0 rgba(255, 255, 255, .2), 2.5em 0 0 0 rgba(255, 255, 255, .5), 1.75em 1.75em 0 0 rgba(255, 255, 255, .7), 0 2.5em 0 0 #fff, -1.8em 1.8em 0 0 rgba(255, 255, 255, .2), -2.6em 0 0 0 rgba(255, 255, 255, .2), -1.8em -1.8em 0 0 rgba(255, 255, 255, .2)
        }
        62.5% {
            box-shadow: 0 -2.6em 0 0 rgba(255, 255, 255, .2), 1.8em -1.8em 0 0 rgba(255, 255, 255, .2), 2.5em 0 0 0 rgba(255, 255, 255, .2), 1.75em 1.75em 0 0 rgba(255, 255, 255, .5), 0 2.5em 0 0 rgba(255, 255, 255, .7), -1.8em 1.8em 0 0 #fff, -2.6em 0 0 0 rgba(255, 255, 255, .2), -1.8em -1.8em 0 0 rgba(255, 255, 255, .2)
        }
        75% {
            box-shadow: 0 -2.6em 0 0 rgba(255, 255, 255, .2), 1.8em -1.8em 0 0 rgba(255, 255, 255, .2), 2.5em 0 0 0 rgba(255, 255, 255, .2), 1.75em 1.75em 0 0 rgba(255, 255, 255, .2), 0 2.5em 0 0 rgba(255, 255, 255, .5), -1.8em 1.8em 0 0 rgba(255, 255, 255, .7), -2.6em 0 0 0 #fff, -1.8em -1.8em 0 0 rgba(255, 255, 255, .2)
        }
        87.5% {
            box-shadow: 0 -2.6em 0 0 rgba(255, 255, 255, .2), 1.8em -1.8em 0 0 rgba(255, 255, 255, .2), 2.5em 0 0 0 rgba(255, 255, 255, .2), 1.75em 1.75em 0 0 rgba(255, 255, 255, .2), 0 2.5em 0 0 rgba(255, 255, 255, .2), -1.8em 1.8em 0 0 rgba(255, 255, 255, .5), -2.6em 0 0 0 rgba(255, 255, 255, .7), -1.8em -1.8em 0 0 #fff
        }
    }
    </style>
</head>

<body>
    <div class=container>
        <canvas height=480 id=canvas oncontextmenu=event.preventDefault() width=640></canvas>
    </div>
    <div class=container id=spinner>
        <div class=loader></div>
    </div>
    <script>
    ! function() {
        "use strict";
        var e = document.getElementById("spinner"),
            t = document.getElementById("canvas");
        t.addEventListener("webglcontextlost", (function(e) {
            alert("WebGL context lost. You will need to reload the page."), e.preventDefault()
        }), !1), window.Module = {
            preRun: [],
            postRun: [],
            print: console.log,
            printErr: console.error,
            canvas: t,
            setStatus: function(t) {
                "" === t && document.body.removeChild(e)
            }
        }
    }()
    </script>
    <script async src="../../../mruby-carbuncle.js"></script>
</body>

</html>