feat: rain +day_&_night

This commit is contained in:
Pc
2026-02-01 23:54:22 +01:00
parent 5e41db643c
commit a3e3c8a955
5 changed files with 259 additions and 1 deletions

View File

@@ -39,7 +39,8 @@
#include "fabula.hpp"
#include "GL/wglew.h"
#include "Logger.hpp"
#include "rain.hpp"
#include "DayNightCycle.hpp"
using namespace glm;
@@ -470,6 +471,10 @@ void SetDCPixelFormat(HDC hDC) {
lazik user(10.0f, 0.0f, 0.0f, "res/models/lazik4.obj"); // obiekty eksportujemy z Forward Axis Z, Up Axis Y.
plane mapa( 0.0f, 0.0f, 0.0f, "res/models/mapka3_nofence_noplatform.obj");
RainSystem rainSystem(2000, 250.0f, 200.0f);
DayNightCycle dayNight;
static void SetupRC() {
// 1. Podstawowe ustawienia OpenGL
glEnable(GL_DEPTH_TEST); // Usuwanie niewidocznych powierzchni
@@ -581,6 +586,8 @@ void static RenderScene(void) {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
dayNight.apply();
// ==========================================
// 1. OBSŁUGA KAMERY
// ==========================================
@@ -697,6 +704,14 @@ void static RenderScene(void) {
plot(450.0f, 3.0f, 10 * 90.0f, 900.0f, 4.0f, 1);
plot(10 * 90.0f, 3.0f, 405.0f, 990.0f, 4.0f, 0);
// --- DESZCZ: Logika i Rysowanie ---
// Aktualizujemy pozycję deszczu przekazując deltaTime oraz pozycję gracza (Foward, Sides)
// Dzięki temu deszcz "chodzi" za nami.
rainSystem.update(deltaTime, Foward, Sides);
// Rysujemy deszcz
rainSystem.draw();
glFlush();
}
@@ -1062,6 +1077,8 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
case 112: // F1 - Widok z pierwszej osoby (FPV)
fpv_view = !fpv_view;
if (fpv_view) panoramic_view = false; // Wyłącz panoramę, jeśli włączasz FPV
case 'N': // Klawisz N przełącza dzień/noc
dayNight.toggle();
break;
// Obsługa innych klawiszy