split editor

This commit is contained in:
2025-10-20 21:07:28 +05:00
parent 023ccd03d8
commit 88643415aa
34 changed files with 3796 additions and 1184 deletions

117
racing-tools/player.html Normal file
View File

@@ -0,0 +1,117 @@
<!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="buttons">
<button class="btn-primary" id="loadMapBtn" onclick="document.getElementById('mapInput').click()">📂 Загрузить карту</button>
<button class="btn-success" id="loadSolutionBtn" onclick="document.getElementById('solutionInput').click()">🎬 Загрузить решение</button>
</div>
<input type="file" id="mapInput" accept=".json" onchange="loadMap(event)">
<input type="file" id="solutionInput" accept=".json" onchange="loadSolution(event)">
</div>
</div>
<div class="canvas-wrapper">
<canvas id="mapCanvas"></canvas>
</div>
<div id="playbackControls" class="visualization-panel hidden">
<h3>🎮 Управление воспроизведением</h3>
<div class="playback-controls">
<button class="playback-btn" onclick="playVisualization()" id="playBtn">▶ Play</button>
<button class="playback-btn" onclick="pauseVisualization()" id="pauseBtn" disabled>⏸ Pause</button>
<button class="playback-btn" onclick="resetVisualization()">⏮ Reset</button>
<button class="playback-btn" onclick="stepBackward()">⏪ Back</button>
<button class="playback-btn" onclick="stepForward()">⏩ Forward</button>
<div class="speed-control">
<label for="speedSlider">Скорость:</label>
<input type="range" id="speedSlider" min="1" max="10" value="5" onchange="updateSpeed()">
<span id="speedValue">5x</span>
</div>
</div>
</div>
<div id="stepInfo" class="step-info hidden">
<div class="info-item">
<span class="info-label">Шаг</span>
<span class="info-value" id="stepNumber">0 / 0</span>
</div>
<div class="info-item">
<span class="info-label">Позиция (x, y)</span>
<span class="info-value" id="positionValue">(0, 0)</span>
</div>
<div class="info-item">
<span class="info-label">Скорость (vx, vy)</span>
<span class="info-value" id="velocityValue">(0, 0)</span>
</div>
<div class="info-item">
<span class="info-label">Ускорение (ax, ay)</span>
<span class="info-value" id="accelerationValue">(0, 0)</span>
</div>
</div>
<div class="info">
<strong>💡 Инструкция:</strong>
• Сначала загрузите карту с точкой старта (тип 5)<br>
• Затем загрузите файл решения с векторами ускорений<br>
• Используйте кнопки управления для просмотра анимации<br>
• 🔵 Синяя линия - пройденная траектория<br>
• 🔴 Красный круг - текущая позиция<br>
• ➡️ Красная стрелка - направление и скорость движения
</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="player.js"></script>
</body>
</html>