Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

21

21.11.2015, 17:58

Also werde ich für jedes "Fenster"(Menü, Spiel, ...) den ganzen Window Kram noch mal schreiben, mache das aber mit den gleichen Variablen?

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

22

21.11.2015, 18:02

Also werde ich für jedes "Fenster"(Menü, Spiel, ...) den ganzen Window Kram noch mal schreiben, mache das aber mit den gleichen Variablen?

Du erzeugt ja immer eine Referenz auf z.B. sf::RenderWindow mit &App

23

21.11.2015, 18:13

Ja schon, aber ich meine die Sachen wie window.clear(); und so.

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

24

21.11.2015, 18:14

Ja schon, aber ich meine die Sachen wie window.clear(); und so.
Ne window.clear(); ode window.display(); musst du nicht nochmla machen, weil du das ja schon in deiner Main-Loop machst. Wenn du das doppelt aufrufst, dann "flackert" dein Fenster

25

21.11.2015, 18:18

Ok.
Aber was machen dann die virtuals genau?

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

26

21.11.2015, 18:20

Aber was machen dann die virtuals genau?

Das z.B.:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void HelpState::Update(Game &game)
{
#pragma region buttons
    mBackbutton->onHover(game);
#pragma endregion buttons
}
//////////////////////////////////////////////////////////////////////////////////////////////////
void HelpState::ProcessEvents(Game &game)
{
#pragma region buttons
    // Zurück zum Menü?
    if (mBackbutton->onClick(game))
        game.changeState(Game::gameState::MAINMENU);

#pragma endregion buttons

}
//////////////////////////////////////////////////////////////////////////////////////////////////
void HelpState::Render(sf::RenderWindow &App)
{
#pragma region buttons
    mBackbutton->Render(App);
#pragma endregion buttons

    App.draw(txtHelp);

}

27

21.11.2015, 18:22

Und das Draw wird jetzt warum ausgeführt?

28

21.11.2015, 18:23

Achso wird das zwischen clear und display im main ausgeführt?

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

29

21.11.2015, 18:24

Achso wird das zwischen clear und display im main ausgeführt?
Jap. In meinem Fall in der Render-Methode von der Game-Klasse:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
void Game::Render()
{
    App.clear();

    if (m_bMenu)    // Nur im Menü den Hintergrund zeichnen
        App.draw(mBackground_Sprite);

    mCurrentState->Render(App);
    App.draw(mStatisticsText);

    App.display();
}

30

21.11.2015, 18:27

Hä, aber jetzt steht doch das App.clear/App.display ein zweites mal, oder?

Werbeanzeige