Phase 28 Session 2: Chunk loading & player spawn update
SESSION 2 - Biome rendering implementation: 1. Player spawn updated for 500x500 world: - Default spawn: Center (250, 250) instead of (50, 50) - Spawn point is in Grassland biome (farm area) - Console logging for spawn location 2. Chunk loading on game start: - Initial chunks loaded around player spawn - 3x3 chunk grid (9 chunks total) - ~22,500 tiles loaded at startup - Console output shows chunk stats 3. Dynamic chunk loading in update loop: - ChunkManager updates based on player position - Auto-load chunks as player moves - Auto-unload distant chunks for performance - Smooth chunk transitions Technical: - Chunks update every frame based on player.getPosition() - Only loads/unloads when player changes chunks - Efficient: Only processes when chunk boundary crossed Status: Session 2 - Implementation complete Next: Test in-game, verify biome rendering Files modified: 1 (GameScene.js) Ready to reload and test!
This commit is contained in:
@@ -384,15 +384,27 @@ class GameScene extends Phaser.Scene {
|
||||
// Dodaj igralca NA SPAWN TOČKI
|
||||
console.log('👤 Initializing player...');
|
||||
const savedSpawn = localStorage.getItem('novafarma_spawn_point');
|
||||
let playerSpawnX = 50, playerSpawnY = 50;
|
||||
|
||||
// 🌍 PHASE 28: Center of 500x500 world
|
||||
let playerSpawnX = 250, playerSpawnY = 250; // Center of world!
|
||||
|
||||
if (savedSpawn) {
|
||||
[playerSpawnX, playerSpawnY] = savedSpawn.split(',').map(Number);
|
||||
console.log(`👤 Spawning player at saved location: (${playerSpawnX}, ${playerSpawnY})`);
|
||||
} else {
|
||||
console.log(`👤 Spawning player at world center: (${playerSpawnX}, ${playerSpawnY})`);
|
||||
}
|
||||
|
||||
this.player = new Player(this, playerSpawnX, playerSpawnY, this.terrainOffsetX, this.terrainOffsetY);
|
||||
|
||||
// 🌍 PHASE 28: Load initial chunks around player
|
||||
if (this.chunkManager) {
|
||||
console.log('💾 Loading initial chunks around player...');
|
||||
this.chunkManager.updateActiveChunks(playerSpawnX, playerSpawnY);
|
||||
const stats = this.chunkManager.getStats();
|
||||
console.log(`✅ Loaded ${stats.activeChunks} chunks (${stats.totalTilesLoaded} tiles)`);
|
||||
}
|
||||
|
||||
// 🎯 SORTABLE OBJECTS GROUP - Za 2.5D Z-Sorting
|
||||
console.log('🎯 Creating sortableObjects group for Z-sorting...');
|
||||
this.sortableObjects = this.add.group();
|
||||
@@ -1610,6 +1622,12 @@ class GameScene extends Phaser.Scene {
|
||||
}
|
||||
}
|
||||
|
||||
// 🌍 PHASE 28: Update chunk loading based on player position
|
||||
if (this.chunkManager && this.player) {
|
||||
const pos = this.player.getPosition();
|
||||
this.chunkManager.updateActiveChunks(pos.x, pos.y);
|
||||
}
|
||||
|
||||
// Concept Systems Updates
|
||||
if (this.zombieSystem) this.zombieSystem.update(this.time.now, delta);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user