Tarayıcıda çalışan, görselliğin ve mini oyunun ön planda olduğu tek sayfalık bir davetiye.
Akış: hoşgeldin → gün seçimi (Firestore'a kaydedilir) → piksel bowling → sürpriz → günün planı.
- Vanilla HTML / CSS / JS (ES modülleri) — build adımı yok
- Canvas API — bowling oyunu ve konfeti
- Firebase Firestore — gün seçimlerini toplar (SDK başarısız olursa REST'e, o da olmazsa localStorage'a düşer)
- GitHub Pages — yayın
suio/
├── index.html # Tüm ekranlar tek sayfada
├── css/
│ ├── style.css # Sahne, tipografi, kartlar, program akışı
│ └── game.css # Oyun ekranı & HUD
├── js/
│ ├── app.js # Ekran akışı, gün kartları, HUD
│ ├── bowling.js # Piksel bowling — fizik, çizim, atış döngüsü
│ ├── seal.js # Limon'un piksel çizimi
│ ├── audio.js # Arka plan müziği
│ ├── confetti.js # Kazanma konfetisi
│ ├── store.js # Firestore'a yazma + yedek yollar
│ └── firebase-config.js
└── assets/audio/ # Arka plan müziği
Üç adımda atış: yön → güç → falso. Her adımda Boşluk, ekrana dokunma ya da
alttaki düğme değeri kilitler. Falso çubuğunun ortası düz atıştır, kenarlara
gittikçe top havuzlanır. Toplam 30 labut devirince sürpriz ekranı açılır.
Fizik tarafında top ve labutlar dairesel çarpışma + sürtünmeyle hesaplanır; labutlar birbirini devirebilir, çukura savrulanlar sahneden çıkar ve her serinin sonunda süpürge pisti temizler.
ES modülleri kullanıldığı için file:// ile değil, bir yerel sunucu ile açılmalı:
python -m http.server 8000Ardından http://localhost:8000 adresine git.
main dalına push edildiğinde Pages otomatik yayınlanır.