Numex yayın: README.md

This commit is contained in:
numex-admin 2026-09-09 22:39:32 +00:00
parent 68456ad77b
commit 07d51f1f22

View File

@ -1,3 +1,42 @@
# raycaster-3d # raycaster-3d
Saf JavaScript ile yazılmış DOOM-vari 3D raycasting oyun motoru — duvarlar, dokular ve akıcı hareket. Saf **HTML5 2D Canvas** (`2d` context) üzerine inşa edilmiş, **3D retro FPS raycasting motoru***Wolfenstein 3D (1992)* klonu.
> ⛔ **Three.js / Babylon.js / WebGL kullanılmadı.** Tüm "3D" görüntü, ekranın her dikey piksel sütunu için fırlatılan ışınların (DDA) canvas `fillRect` ile boyamasından üretilir: gerçek 3D yok, perspektif illüzyonu var — tıpkı 1992'de olduğu gibi.
## Harita Düzeni (16×16)
| Değer | Anlam |
|-------|-------|
| `0` | Boş / geçilebilir zemin |
| `1` | Neon mavi duvar |
| `2` | Yeşil duvar |
| `3` | Kırmızı tuğla duvar |
## Teknik Özellikler
- **Raycasting & matematik motoru:** her dikey piksel sütunu için bir ışın; DDA (Digital Differential Analyzer) ışın yürütme.
- **Fisheye düzeltmesi:** `perpDist = dist * Math.cos(rayAngle - playerAngle)` ile kavisli duvar görünümü engellenir.
- **Derinlik gölgelendirme:** uzak dilimler koyu, yakınlar parlak.
- **Tavan/zemin:** gökyüzü kısmen koyu gri→siyah degrade, zemin koyu füme; dikey dilimler hâlinde boyanır.
- **Kontroller:** `W/S` ileri-geri, `A/D` veya `←/→` dönüş.
- **Çarpışma:** oyuncu duvarlardan geçemez (DDA + grid bounding).
- **HUD & Minimap:** sağ üstte grid tabanlı canlı radar (duvarlar + oyuncu + ışın konisi), altta retro durum çubuğu — canlı FPS sayacı, oyuncu `x / y`, retro hedef (crosshair).
## Çalıştırma
```bash
npm install
npm start
# -> http://localhost:4173
```
veya başka port: `PORT=5000 npm start`
## Dosyalar
```
public/
index.html — sayfa yapısı, canvas + HUD + minimap
style.css — retro arayüz
engine.js — raycasting/görüntüleme çekirdeği (saf 2D canvas)
app.js — oyun döngüsü, kontroller, fizik, HUD/minimap, minimap ışını
server.js — Express statik sunucu
```
Oda oklarıyla dön, W/S ile yürü. İyi avlar 👾