Updated game structure
Some checks failed
Build and Package Tetris / build-windows (push) Has been cancelled
Build and Package Tetris / build-linux (push) Has been cancelled

This commit is contained in:
2025-08-16 12:10:19 +02:00
parent 71648fbaeb
commit 2afaea7fd3
36 changed files with 665 additions and 382 deletions

31
src/core/GravityManager.h Normal file
View File

@ -0,0 +1,31 @@
#pragma once
#include <array>
class GravityManager {
public:
GravityManager();
// Global multiplier applied to all levels
void setGlobalMultiplier(double m);
double getGlobalMultiplier() const;
// Per-level multiplier (29 = 29+)
void setLevelMultiplier(int level, double m);
double getLevelMultiplier(int level) const;
// Compute ms per cell and fps for a given level
double getMsForLevel(int level) const;
double getFpsForLevel(int level) const;
private:
static constexpr double NES_FPS = 60.0988;
static constexpr double FRAME_MS = 1000.0 / NES_FPS;
static constexpr int FRAMES_TABLE[30] = {
48,43,38,33,28,23,18,13,8,6,
5,5,5,4,4,4,3,3,3,2,
2,2,2,2,2,2,2,2,2,1
};
double globalMultiplier{1.0};
std::array<double,30> levelMultipliers{}; // default 1.0
};