mirror of
https://github.com/DeNNiiInc/Connect-5.git
synced 2026-04-17 22:46:00 +00:00
FIX: Prevent multiplayer initialization before game is ready
- Add polling mechanism to wait for window.game initialization - Disable multiplayer button until game is fully initialized - Enable button in DOMContentLoaded after game creation - Prevents 'Game instance not found' error on production This fixes the critical issue where clicking Multiplayer too quickly would fail because window.game wasn't ready yet.
This commit is contained in:
8
game.js
8
game.js
@@ -247,9 +247,15 @@ class Connect5Game {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize game when DOM is loaded
|
|
||||||
// Initialize game when DOM is loaded
|
// Initialize game when DOM is loaded
|
||||||
window.game = null;
|
window.game = null;
|
||||||
document.addEventListener("DOMContentLoaded", () => {
|
document.addEventListener("DOMContentLoaded", () => {
|
||||||
window.game = new Connect5Game();
|
window.game = new Connect5Game();
|
||||||
|
|
||||||
|
// Enable multiplayer button now that game is ready
|
||||||
|
const multiplayerBtn = document.getElementById('multiplayerModeBtn');
|
||||||
|
if (multiplayerBtn) {
|
||||||
|
multiplayerBtn.disabled = false;
|
||||||
|
console.log('✅ Game initialized, multiplayer button enabled');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
13
index.html
13
index.html
@@ -48,7 +48,7 @@
|
|||||||
<button class="mode-btn active" id="localModeBtn" onclick="toggleGameMode('local')">
|
<button class="mode-btn active" id="localModeBtn" onclick="toggleGameMode('local')">
|
||||||
🎮 Local Play
|
🎮 Local Play
|
||||||
</button>
|
</button>
|
||||||
<button class="mode-btn" id="multiplayerModeBtn" onclick="toggleGameMode('multiplayer')">
|
<button class="mode-btn" id="multiplayerModeBtn" onclick="toggleGameMode('multiplayer')" disabled>
|
||||||
🌐 Multiplayer
|
🌐 Multiplayer
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -217,7 +217,16 @@
|
|||||||
// Initialize multiplayer if not already
|
// Initialize multiplayer if not already
|
||||||
if (!window.multiplayerClient) {
|
if (!window.multiplayerClient) {
|
||||||
if (!window.game) {
|
if (!window.game) {
|
||||||
console.error("Game instance not found!");
|
console.log('⏳ Waiting for game to initialize...');
|
||||||
|
// Poll for game to be ready
|
||||||
|
const checkGame = setInterval(() => {
|
||||||
|
if (window.game) {
|
||||||
|
clearInterval(checkGame);
|
||||||
|
console.log('✅ Game ready, initializing multiplayer...');
|
||||||
|
window.multiplayerClient = new MultiplayerClient(window.game);
|
||||||
|
window.multiplayerClient.connect();
|
||||||
|
}
|
||||||
|
}, 100); // Check every 100ms
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
window.multiplayerClient = new MultiplayerClient(window.game);
|
window.multiplayerClient = new MultiplayerClient(window.game);
|
||||||
|
|||||||
Reference in New Issue
Block a user