Updated game structure
This commit is contained in:
31
src/core/GravityManager.h
Normal file
31
src/core/GravityManager.h
Normal 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
|
||||
};
|
||||
Reference in New Issue
Block a user