Звук (Web Audio API) + несколько раскладок coop-карты
Клиент: audio.js синтезирует эффекты без внешних файлов (выстрел, взрыв, разрушение кирпича, победа/поражение) — вписывается в "чистый HTML/CSS/JS" стек. AudioContext разблокируется по клику "готов" (браузеры блокируют автовоспроизведение без жеста). Сервер: 3 варианта раскладки coop-карты (случайный выбор при старте матча) вместо одной фиксированной. Fix: сервер разрушал кирпичи в своей копии карты, но никогда не сообщал об этом клиенту — стена оставалась видимой навсегда, хотя сквозь неё уже можно было стрелять. Теперь game.state включает destroyed_tiles, клиент убирает соответствующий спрайт стены.
This commit is contained in:
@@ -69,6 +69,7 @@ private:
|
||||
std::vector<Bullet> bullets_;
|
||||
std::optional<Base> base_;
|
||||
std::vector<std::pair<double, double>> enemy_spawn_points_;
|
||||
std::vector<std::pair<int, int>> destroyed_tiles_; // за последний тик — для звука/синка стен на клиенте
|
||||
int enemies_spawned_total_ = 0;
|
||||
int enemy_spawn_cooldown_ = 0;
|
||||
int next_bullet_id_ = 1;
|
||||
|
||||
Reference in New Issue
Block a user