GameScene - bestehende Layer kapseln #22

Open
opened 2026-04-16 20:26:36 +00:00 by sebastian · 0 comments
Owner

Problem: GameLayer und UILayer werden aktuell direkt in der Application als rohe Layer verwaltet. Beim Start eines neuen Spiels müssen alle Spielressourcen neu geladen und ein frischer GameMode erstellt werden.
Lösung:

// game/scenes/GameScene.h
class GameScene : public Scene {
    void onEnter() override;
    void onExit()  override;
private:
    std::shared_ptr<GameMode> gameMode;
};

onEnter():
1.Neuen GameMode erstellen
2. Asset-Ladeoperationen schedulen (via AssetManager::scheduleX)
3. GameLayer + UILayer erstellen, gameMode injecten
Assets werden via LoadingScreenScene geladen, bevor GameScene::onEnter() überhaupt aufgerufen wird.
Acceptance Criteria:

  • Jeder "Neues Spiel"-Klick erstellt einen frischen GameMode
  • Alle Assets der Szene werden über die Queue geladen (kein direktes loadTexture in onEnter)
  • onExit() gibt Spielzustand frei
Problem: GameLayer und UILayer werden aktuell direkt in der Application als rohe Layer verwaltet. Beim Start eines neuen Spiels müssen alle Spielressourcen neu geladen und ein frischer GameMode erstellt werden. Lösung: ``` // game/scenes/GameScene.h class GameScene : public Scene { void onEnter() override; void onExit() override; private: std::shared_ptr<GameMode> gameMode; }; ``` onEnter(): 1.Neuen GameMode erstellen 2. Asset-Ladeoperationen schedulen (via AssetManager::scheduleX) 3. GameLayer + UILayer erstellen, gameMode injecten Assets werden via LoadingScreenScene geladen, bevor GameScene::onEnter() überhaupt aufgerufen wird. Acceptance Criteria: - Jeder "Neues Spiel"-Klick erstellt einen frischen GameMode - Alle Assets der Szene werden über die Queue geladen (kein direktes loadTexture in onEnter) - onExit() gibt Spielzustand frei
sebastian added the
enhancement
refactoring
engine
labels 2026-04-16 20:26:48 +00:00
sebastian added this to the Konkrete Szenen milestone 2026-04-16 20:45:22 +00:00
sebastian added this to the Dicewars project 2026-04-16 21:03:12 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: sebastian/Dicewars-Siedler#22
No description provided.