126 lines
5.5 KiB
HTML
126 lines
5.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="ru">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Редактор карт - Гонки на бумаге</title>
|
|
<link rel="stylesheet" href="styles.css">
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<h1>🏁 Редактор карт</h1>
|
|
<p class="subtitle">Гонки на бумаге / Paper Racing</p>
|
|
|
|
<div class="nav-links">
|
|
<a href="editor.html">🏁 Редактор карт</a>
|
|
<a href="player.html">🎬 Визуализатор решений</a>
|
|
</div>
|
|
|
|
<div class="controls">
|
|
<div class="control-group">
|
|
<h3>📐 Размеры карты</h3>
|
|
<div class="size-inputs">
|
|
<div class="input-wrapper">
|
|
<label for="width">Ширина:</label>
|
|
<input type="number" id="width" min="5" max="100" value="15">
|
|
</div>
|
|
<div class="input-wrapper">
|
|
<label for="height">Высота:</label>
|
|
<input type="number" id="height" min="5" max="100" value="15">
|
|
</div>
|
|
</div>
|
|
<div class="buttons">
|
|
<button class="btn-primary" onclick="resizeMap()">Применить</button>
|
|
<button class="btn-danger" onclick="clearMap()">Очистить</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="control-group">
|
|
<h3>🎨 Тип ячейки</h3>
|
|
<div class="palette">
|
|
<div class="cell-type road active" data-type="0" onclick="selectCellType(0)">
|
|
<span>Дорога</span>
|
|
<span class="code">(0)</span>
|
|
</div>
|
|
<div class="cell-type stone" data-type="1" onclick="selectCellType(1)">
|
|
<span>Камень</span>
|
|
<span class="code">(1)</span>
|
|
</div>
|
|
<div class="cell-type snow" data-type="2" onclick="selectCellType(2)">
|
|
<span>Снег</span>
|
|
<span class="code">(2)</span>
|
|
</div>
|
|
<div class="cell-type ice" data-type="3" onclick="selectCellType(3)">
|
|
<span>Лёд</span>
|
|
<span class="code">(3)</span>
|
|
</div>
|
|
<div class="cell-type checkpoint" data-type="4" onclick="selectCellType(4)">
|
|
<span>Чекпоинт</span>
|
|
<span class="code">(4)</span>
|
|
</div>
|
|
<div class="cell-type start" data-type="5" onclick="selectCellType(5)">
|
|
<span>Старт</span>
|
|
<span class="code">(5)</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="control-group">
|
|
<h3>💾 Импорт / Экспорт</h3>
|
|
<div class="buttons">
|
|
<button class="btn-success" onclick="exportMap()">📥 Экспорт JSON</button>
|
|
<button class="btn-warning" onclick="document.getElementById('fileInput').click()">📤 Импорт JSON</button>
|
|
</div>
|
|
<input type="file" id="fileInput" accept=".json" onchange="importMap(event)">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="canvas-wrapper">
|
|
<canvas id="mapCanvas"></canvas>
|
|
</div>
|
|
|
|
<div class="info">
|
|
<strong>💡 Подсказки:</strong>
|
|
• Кликайте по ячейкам для изменения типа<br>
|
|
• Удерживайте кнопку мыши для рисования<br>
|
|
• Экспортируйте карту в JSON для использования в игре<br>
|
|
• Для визуализации решений используйте <a href="player.html" style="color: #0d47a1; font-weight: bold;">Визуализатор решений</a>
|
|
</div>
|
|
|
|
<div class="control-group">
|
|
<h3>📖 Легенда цветов</h3>
|
|
<div class="legend">
|
|
<div class="legend-item">
|
|
<div class="legend-color road"></div>
|
|
<span>Дорога (0)</span>
|
|
</div>
|
|
<div class="legend-item">
|
|
<div class="legend-color stone"></div>
|
|
<span>Камень (1)</span>
|
|
</div>
|
|
<div class="legend-item">
|
|
<div class="legend-color snow"></div>
|
|
<span>Снег (2)</span>
|
|
</div>
|
|
<div class="legend-item">
|
|
<div class="legend-color ice"></div>
|
|
<span>Лёд (3)</span>
|
|
</div>
|
|
<div class="legend-item">
|
|
<div class="legend-color checkpoint"></div>
|
|
<span>Чекпоинт (4)</span>
|
|
</div>
|
|
<div class="legend-item">
|
|
<div class="legend-color start"></div>
|
|
<span>Старт (5)</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="common.js"></script>
|
|
<script src="editor.js"></script>
|
|
</body>
|
|
</html>
|
|
|