Files
novafarma/SESSION_POND_SOUND.md
2025-12-12 02:41:00 +01:00

4.5 KiB

🌊 Sesija: Ribnik & Sound System - 12. December 2025

📋 Povzetek Sesije

🎯 Glavni Dosežki

1. Ribnik z Animirano Vodo 🌊

  • Lokacija: (30, 30) - okrogel ribnik (radij 4 tiles)
  • 2D Stardew Valley stil - flat top-down namesto 3D isometric
  • Temno modra barva (0x0a3d62 → 0x1e5f8c) - dobro vidna!
  • Alpha tween animacija - valovanje (0.7 ↔ 1.0, 1 sekunda)
  • Gradient + highlights - svetli krogi za valovanje

2. Dežne Kapljice 🌧️

  • Rain particles - padajo v ribnik
  • 10 kapljic/sekundo (frequency: 100ms)
  • Modre kapljice (0x4488ff)
  • Fade efekt - alpha 0.8 → 0.3
  • ADD blend mode - svetleči efekt

3. Sound System 🎵

  • Ambient music - C Minor Pentatonic scale
  • Rain sound - white noise nad ribnikom
  • SFX ready - dig, plant, harvest, build, chop, pickup
  • Proceduralni zvoki - Web Audio API oscillators

4. Čista Mapa 🟢

  • Brez dreves (TREE_DENSITY = 0%)
  • Brez hiš (ABANDONED_HOUSES = [])
  • Brez dekoracij (grmički, rože, skale = 0%)
  • SaveSystem onemogočen - fresh start

🔧 Ključne Spremembe

TerrainSystem.js

1. Ribnik Generiranje:

// Konstante
const POND_CENTER_X = 30;
const POND_CENTER_Y = 30;
const POND_RADIUS = 4;

// Generiranje
const distToPond = Math.sqrt(
    Math.pow(x - POND_CENTER_X, 2) + 
    Math.pow(y - POND_CENTER_Y, 2)
);
if (distToPond <= POND_RADIUS) {
    terrainType = this.terrainTypes.WATER;
}

2. 2D Water Texture:

// Temna modra voda
waterGraphics.fillGradientStyle(
    0x0a3d62, 0x0a3d62,  // Temno modra
    0x1e5f8c, 0x1e5f8c   // Srednje modra
);

// Highlights
waterGraphics.fillStyle(0x3a8fc2, 0.5);
waterGraphics.fillCircle(12, 12, 10);
waterGraphics.fillCircle(36, 28, 8);
waterGraphics.fillCircle(24, 38, 6);

// Border
waterGraphics.lineStyle(2, 0x062a40, 1);

3. Water Animation:

// Alpha tween za valovanje
this.scene.tweens.add({
    targets: sprite,
    alpha: 0.7,
    duration: 1000,
    yoyo: true,
    repeat: -1,
    ease: 'Sine.easeInOut'
});

4. Rain Particles:

this.rainEmitter = this.scene.add.particles(pondX, pondY - 100, 'raindrop', {
    x: { min: -50, max: 50 },
    y: 0,
    lifespan: 1000,
    speedY: { min: 200, max: 300 },
    scale: { start: 0.5, end: 0.2 },
    alpha: { start: 0.8, end: 0.3 },
    frequency: 100,
    blendMode: 'ADD'
});

// Rain sound
this.scene.soundManager.playRainSound();

GameScene.js

1. TerrainSystem Update:

update(time, delta) {
    if (this.terrainSystem) this.terrainSystem.update(time, delta);
    // ... ostali sistemi
}

2. Farm Tiles:

// Dirt namesto grass
this.terrainSystem.tiles[y][x].type = 'dirt';
this.terrainSystem.tiles[y][x].sprite.setTexture('dirt');

SaveSystem.js

LoadGame Onemogočen:

loadGame() {
    console.log('📂 Loading game... DISABLED - Fresh start!');
    return false; // Vedno fresh start
}

📊 Končna Konfiguracija

Mapa:

  • Velikost: 100x100
  • Teren: Zelena trava
  • Farm: 8x8 dirt tiles (50,50)
  • Ribnik: Okrogel, radij 4 (30,30)

Dekoracije:

  • Drevesa: 0%
  • Grmički: 0%
  • Rože: 0%
  • Skale: 0%
  • Hiše: 0%

Voda:

  • Stil: 2D Stardew Valley
  • Barva: Temno modra (0x0a3d62 → 0x1e5f8c)
  • Animacija: Alpha tween (1s)
  • Dež: 10 kapljic/s

Zvok:

  • Ambient music: C Minor Pentatonic
  • Rain sound: White noise (800Hz lowpass)
  • SFX: Proceduralni (Web Audio API)

🎯 Naslednji Koraki

Priporočila:

  1. Testiranje ribnika - Vizualno preverjanje
  2. Dodati ribe - Interakcija z ribnikom
  3. Ribolov sistem - Mini-game
  4. Ponovno omogočiti save - Ko je testiranje končano
  5. Dodati nazaj drevesa - Z nizko gostoto (1-3%)

📝 Opombe

  • Voda je zdaj 2D flat (Stardew Valley stil)
  • Rain particles samo nad ribnikom
  • Sound system že implementiran
  • Save sistem onemogočen za testiranje
  • Vse spremembe kompatibilne z obstoječim kodom

Datum: 12. December 2025
Trajanje: ~40 minut
Status: Uspešno zaključeno
Naslednja sesija: Testiranje + ribe/ribolov


🚀 Quick Start (Po Vrnitvi)

# Reload igre
F4 v Electron oknu

# Preveri ribnik
Pojdi na (30, 30)

# Ponovno omogoči save (ko je testiranje končano)
# SaveSystem.js - odkomentiraj loadGame()

Uživajte v Sparu! 🛒