Files
paper-racing-gpi/racing-tools/player.html
2025-10-20 21:07:28 +05:00

118 lines
5.3 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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>