181 lines
6.0 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Karlkoder Playground</title>
<link rel="stylesheet" href="./style.css">
<script type="importmap">
{
"imports": {
"lib": "./js/lib.js"
}
}
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.43.2/ace.js"></script>
<script src="./js/index.js" type="module"></script>
</head>
<body>
<main>
<div class="column" style="flex: 1">
<div id="buttons">
<a
href="docs/index.html"
target="_blank"
>
<button>🤓 Docs</button>
</a>
<div class="dropdown-wrapper">
<button id="save-button">
💾 Save/Export
</button>
<div
id="save-dropdown"
class="dropdown-content"
>
<div
id="save-js"
class="dropdown-option"
>
Save JavaScript
</div>
<div
id="save-html"
class="dropdown-option"
>
Export as HTML
</div>
</div>
</div>
<div>
<button id="run-button">🏃 Run</button>
</div>
<div>
<button id="toggle-sprite-editor-button">🖼️ Toggle sprite editor</button>
</div>
</div>
<section>
<div class="section-header">Output</div>
<canvas id="canvas-area" width="480" height="360"></canvas>
</section>
<section id="console-section">
<div class="section-header">
Console
</div>
<div id="console">
<pre><code id="console-code">Karlkode 1.0</code></pre>
<input
type="text"
placeholder=">"
>
</div>
</section>
</div>
<div class="column" style="flex: 3">
<section>
<div class="section-header">
Code editor
</div>
<div id="editor-area">
<pre
id="editor"
>
import * as lib from "lib";
lib.clear("green");
lib.drawRect(100, 100, 100, 100, "blue");
lib.println("hello world!");
let playerX = 0;
function loop(deltaT) {
playerX += 100 * deltaT;
lib.drawRect(playerX, 200, 50, 50, "red");
}
lib.startGameLoop(loop);
</pre>
</div>
</section>
</div>
<div class="column" id="sprite-editor-container">
<section id="sprite-editor">
<div class="section-header">
Sprite editor
</div>
<div id="sprite-editor-preview">
<p id="sprite-editor-preview-title"></p>
<img id="sprite-editor-preview-image" src="">
</div>
<button id="sprite-editor-upload-button">Upload new sprite</button>
<ul id="sprite-editor-sprite-list">
<li><p>hrrmimimi <button class="delete-button">X</button></p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
<li><p>hrrmimimi</p></li>
</ul>
</section>
</div>
</main>
<footer>
Copyright © 2025 S. J. Fakobsen (do whatever idc)
</footer>
<!-- fix flash bug in furry browser -->
<script>
0;
</script>
</body>
</html>