70 lines
1.2 KiB
JavaScript
70 lines
1.2 KiB
JavaScript
|
|
let gameConfig = null;
|
|
let isLoaded = false;
|
|
let isGameRunning = false;
|
|
let isGameOver = false;
|
|
let sessionID = null;
|
|
|
|
let socket = null;
|
|
let obstacleBuffer = [];
|
|
let platformBuffer = [];
|
|
|
|
let score = 0;
|
|
let currentTick = 0;
|
|
|
|
|
|
let godModeLives = 0;
|
|
let hasBat = false;
|
|
let bootTicks = 0;
|
|
|
|
|
|
let maxRawBgIndex = 0;
|
|
|
|
|
|
let lastTime = 0;
|
|
let accumulator = 0;
|
|
|
|
|
|
let sprites = {};
|
|
let playerSprite = new Image();
|
|
let bgSprites = [];
|
|
|
|
|
|
let player = {
|
|
x: 50,
|
|
y: 300,
|
|
w: 30,
|
|
h: 50,
|
|
color: "red",
|
|
vy: 0,
|
|
grounded: false,
|
|
prevY: 300
|
|
};
|
|
let particles = [];
|
|
|
|
|
|
|
|
let obstacles = [];
|
|
let platforms = [];
|
|
|
|
|
|
let serverObstacles = [];
|
|
let serverPlatforms = [];
|
|
|
|
let currentLatencyMs = 0;
|
|
let pingInterval = null;
|
|
|
|
|
|
let isCrouching = false;
|
|
|
|
|
|
const canvas = document.getElementById('gameCanvas');
|
|
const ctx = canvas.getContext('2d');
|
|
const container = document.getElementById('game-container');
|
|
|
|
const startScreen = document.getElementById('startScreen');
|
|
const startBtn = document.getElementById('startBtn');
|
|
const loadingText = document.getElementById('loadingText');
|
|
const gameOverScreen = document.getElementById('gameOverScreen');
|
|
const scoreDisplay = document.getElementById('score');
|
|
const highscoreDisplay = document.getElementById('localHighscore'); |