This commit is contained in:
2026-05-02 21:08:47 +02:00
parent e4389f035d
commit fcc598adb1
11 changed files with 35 additions and 32 deletions

View File

@@ -15,7 +15,7 @@ namespace {
void writeFinalScoreFile(int score) {
std::ofstream file("score.txt", std::ios::trunc);
if (!file.is_open()) {
WARN("Failed to open score.txt for writing");
WARN("Neuspešno odpiranje score.txt za pisanje");
return;
}
@@ -314,7 +314,7 @@ namespace Game::AGame {
} else if (!GameManager::getSharedData<bool>("gameWon")) {
writeFinalScoreFile(GameManager::getSharedData<int>("gameScore"));
GameManager::setSharedData("gameWon", true);
LOG("All levels cleared");
LOG("Vsi nivoji so zaključeni");
}
}
}

View File

@@ -13,7 +13,7 @@ namespace Game::AGame {
void Enemy::start() {
mZIndex = 20;
addComponent<Object::Components::BoxCollider>();
LOG("Enemy started: " << getName());
LOG("Sovražnik zagnan: " << getName());
// Initialize random movement
const float angle = static_cast<float>(Utils::getUtils().rirng32(0, 360)) * 3.14159f / 180.f;
@@ -144,13 +144,13 @@ namespace Game::AGame {
}
if (hasAdjacentEnemy()) {
LOG("Player collided with a strong group of polluters; game over!");
LOG("Igralec je trčil v močno skupino onesnaževalcev; konec igre!");
GameManager::setSharedData("gameLost", true);
GameManager::destroyEntity(player);
return;
}
LOG("Enemy '" << getName() << "' collided with player; removing polluter and awarding points");
LOG("Sovražnik '" << getName() << "' je trčil v igralca; odstranjujem onesnaževalca in dodeljujem točke");
GameManager::setSharedData("enemyActiveCount", std::max(0, GameManager::getSharedData<int>("enemyActiveCount") - 1));
GameManager::setSharedData("gameScore", GameManager::getSharedData<int>("gameScore") + 100);
GameManager::destroyEntity(this);

View File

@@ -11,7 +11,7 @@ namespace Game::AGame {
void Friendly::start() {
mZIndex = 20;
addComponent<Object::Components::BoxCollider>();
LOG("Friendly started: " << getName());
LOG("Zaveznik zagnan: " << getName());
// Initialize random movement
const float angle = static_cast<float>(Utils::getUtils().rirng32(0, 360)) * 3.14159f / 180.f;

View File

@@ -44,8 +44,11 @@ namespace Game::AGame {
return;
}
const std::string playerName = GameManager::getSharedData<std::string>("playerName");
std::stringstream stream;
stream << "Level " << GameManager::getSharedData<int>("gameStage")
stream << "Igralec: " << (playerName.empty() ? std::string("Anonimni") : playerName)
<< " | Level " << GameManager::getSharedData<int>("gameStage")
<< " | Točke " << GameManager::getSharedData<int>("gameScore")
<< " | Smeti " << GameManager::getSharedData<int>("trashActiveCount")
<< " | Sovražniki " << GameManager::getSharedData<int>("enemyActiveCount");

View File

@@ -99,7 +99,7 @@ namespace Game::AGame {
setTexture(mGroundTex);
}
LOG("W: " << w << " H: " << h);
LOG("Š: " << w << " V: " << h);
//mSound.~Sound();
}

View File

@@ -20,7 +20,7 @@ int main() {
PLNIMP("Letnik3Zadnja - Licenca: LGPLv2.1-only, CC BY-SA 4.0");
// Prompt for player name before initializing the window/engine
std::string playerName;
std::cout << "Vnesi ime igralca (pritisni Enter za 'Igralec'): ";
std::cout << "Vnesi uporabniško ime (pusti prazno za 'Igralec'): ";
std::getline(std::cin, playerName);
if (playerName.empty()) playerName = "Igralec";
Game::GameManager::setSharedData<std::string>("playerName", playerName);

View File

@@ -6,7 +6,7 @@
namespace Game::Object::Components {
BoxCollider::BoxCollider(const BoxCollider& other) : Component(other) {
LOG("Copied BoxCollider Component: " << mName);
LOG("Kopiran BoxCollider komponenta: " << mName);
}
BoxCollider& BoxCollider::operator=(const BoxCollider& other) {
@@ -17,7 +17,7 @@ namespace Game::Object::Components {
}
BoxCollider::BoxCollider(BoxCollider&& other) noexcept : Component(std::move(other)) {
LOG("Moved BoxCollider Component: " << mName);
LOG("Premaknjena BoxCollider komponenta: " << mName);
}
BoxCollider& BoxCollider::operator=(BoxCollider&& other) noexcept {

View File

@@ -9,7 +9,7 @@ namespace Game::Object {
Entity::~Entity() = default;
Entity::Entity(const Entity& other) : mName(other.mName), mTex(other.mTex), mTransform(other.mTransform), mIsActive(other.mIsActive) {
LOG("Copied Entity: " << mName);
LOG("Kopirana entiteta: " << mName);
}
Entity& Entity::operator=(const Entity& other) {
@@ -24,7 +24,7 @@ namespace Game::Object {
Entity::Entity(Entity&& other) noexcept : mName(std::move(other.mName)), mTex(other.mTex), mTransform(other.mTransform), mIsActive(other.mIsActive) {
other.mTex = nullptr;
LOG("Moved Entity: " << mName);
LOG("Premaknjena entiteta: " << mName);
}
Entity& Entity::operator=(Entity&& other) noexcept {

View File

@@ -17,7 +17,7 @@ namespace Game::Renderer {
if (mRenderer) {
SDL_DestroyRenderer(mRenderer);
mRenderer = nullptr;
LOG("Destroyed Renderer");
LOG("Renderer uničen");
}
}
@@ -27,22 +27,22 @@ namespace Game::Renderer {
mRenderer = SDL_CreateRenderer(window, nullptr);
if (!mRenderer) {
std::string errorMsg = "Failed to create renderer: " + std::string(SDL_GetError());
std::string errorMsg = std::string("Neuspešno ustvarjanje rendererja: ") + std::string(SDL_GetError());
ERROR(errorMsg.c_str());
return false;
}
mVSyncEnabled = SDL_SetRenderVSync(mRenderer, 1);
if (!mVSyncEnabled) {
WARN("VSync could not be enabled, using software frame pacing fallback: " << SDL_GetError());
WARN("VSync ni mogoče omogočiti, uporabljam programsko omejitev okvirjev: " << SDL_GetError());
}
if (!SDL_SetRenderDrawColor(mRenderer, 0, 0, 255, 255)) {
ERROR("Failed to set renderer draw color: " << SDL_GetError());
ERROR("Neuspelo nastavitev barve rendererja: " << SDL_GetError());
return false;
}
LOG("Renderer created successfully");
LOG("Renderer uspešno ustvarjen");
return true;
}

View File

@@ -41,7 +41,7 @@ namespace Game::Renderer {
Texture::~Texture() {
if (mTex)
SDL_DestroyTexture(mTex);
LOG("Destroyed texture '" << mId << "'")
LOG("Tekstura '" << mId << "' uničena")
}
SDL_Texture* Texture::getSDLTexture() {

View File

@@ -14,14 +14,14 @@ namespace Game::Window {
if (mGameThread.joinable()) {
mGameThread.request_stop();
mGameThread.join();
LOG("Game thread stopped successfully");
LOG("Nit igre uspešno ustavljena");
}
if (mWindow) {
SDL_DestroyWindow(mWindow);
mWindow = nullptr;
sWindowBackend = nullptr;
LOG("Window destroyed successfully");
LOG("Okno uspešno uničeno");
}
SDL_Quit();
}
@@ -50,7 +50,7 @@ namespace Game::Window {
mLastWindowHeight = height;
sWindowBackend = mWindow;
LOG("Window created successfully");
LOG("Okno uspešno ustvarjeno");
if (!mRenderer.init(mWindow)) {
SDL_DestroyWindow(mWindow);
@@ -64,17 +64,17 @@ namespace Game::Window {
if (mRenderer.isVSyncEnabled()) {
const int vsyncCap = std::max(1, mTargetFPS - VSYNC_FPS_OFFSET);
mEffectiveFrameCap = vsyncCap;
LOG("Low-latency VSync mode enabled. Target FPS: " << mTargetFPS << ", cap: " << mEffectiveFrameCap);
LOG("Low-latency VSync mode vključen. Target FPS: " << mTargetFPS << ", cap: " << mEffectiveFrameCap);
} else {
mEffectiveFrameCap = std::max(1, mTargetFPS);
LOG("VSync unavailable, using software cap: " << mEffectiveFrameCap);
LOG("VSync ni na voljo, uporabljam programski limit: " << mEffectiveFrameCap);
}
#else
mEffectiveFrameCap = std::max(1, mTargetFPS);
#endif
mGameManager.setTargetUpdatesPerSecond(TARGET_UPDATE_RATE);
LOG("Target updates per second: " << mGameManager.getTargetUpdatesPerSecond());
LOG("Ciljna hitrost posodobitev na sekundo: " << mGameManager.getTargetUpdatesPerSecond());
mGameThread = std::jthread(std::bind_front(&Game::GameManager::run, &mGameManager));