51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
// Globale Status-Variablen
|
|
let gameConfig = null;
|
|
let isLoaded = false;
|
|
let isGameRunning = false;
|
|
let isGameOver = false;
|
|
let sessionID = null;
|
|
|
|
let rng = null;
|
|
let score = 0;
|
|
let currentTick = 0;
|
|
let lastSentTick = 0;
|
|
let inputLog = [];
|
|
let isCrouching = false;
|
|
|
|
// Powerups Client State
|
|
let godModeLives = 0;
|
|
let hasBat = false;
|
|
let bootTicks = 0;
|
|
|
|
// Hintergrund
|
|
let currentBgIndex = 0;
|
|
let maxRawBgIndex = 0;
|
|
|
|
// Tick Time
|
|
let lastTime = 0;
|
|
let accumulator = 0;
|
|
let lastPowerupTick = -9999;
|
|
let nextSpawnTick = 0;
|
|
|
|
// Grafiken
|
|
let sprites = {};
|
|
let playerSprite = new Image();
|
|
let bgSprite = new Image();
|
|
let bgSprites = [];
|
|
// Spiel-Objekte
|
|
let player = {
|
|
x: 50, y: 300, w: 30, h: 50, color: "red",
|
|
vy: 0, grounded: false
|
|
};
|
|
|
|
let obstacles = [];
|
|
let serverObstacles = [];
|
|
|
|
// HTML Elemente (Caching)
|
|
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'); |