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

11

16.11.2015, 19:12

Ich würde dir auch eine Abstrakte Klasse vorschlagen, wie es @cojo2015 schon mal gesagt hat.

Dort erstellst du bzw. drei virtuelle Funktionen(Update, ProcessEvents, Render || Namen frei wählbar).
Und wenn du jetzt zum Beispiel ein Menü machen willst oder das eigentliche Spiel kannst du immer diese Klasse inkludieren und dann mit dem Befehl "override" sozusagen die Funktionen von der abstrakten Klasse überschreiben.

12

16.11.2015, 19:15

Ok ich denke ich werde mir diese Abstrakten Klassen noch mal ansehen, vielleicht verstehe ich sie ja dieses mal.

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

13

16.11.2015, 19:17

Ok ich denke ich werde mir diese Abstrakten Klassen noch mal ansehen, vielleicht verstehe ich sie ja dieses mal.
Wenn du es nicht auf Anhieb (so wie ich am Anfang) versteht, dann gibt es ja auch noch uns. Frag einfach :)

14

16.11.2015, 19:22

Wie hast du es denn verstanden? Ich finde wieder nur Tutorials die mich mehr verwirren, als sie mir helfen.

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

15

16.11.2015, 19:29

Wie hast du es denn verstanden? Ich finde wieder nur Tutorials die mich mehr verwirren, als sie mir helfen.
Mir hat es @SlyGamer72HD erklärt. Nach ein bisschen Praxis habe ich es dann auch gerafft :pillepalle:

16

16.11.2015, 19:30

Heißt das dass ich den ganzen Window Kram in eine Abstrakte Klasse reinhauen soll?

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

17

16.11.2015, 19:34

Heißt das dass ich den ganzen Window Kram in eine Abstrakte Klasse reinhauen soll?
Eigentlich schon. Du brauchst eine Methode, die die Updates macht und eine, die die Events bearbeitet und schließlich auch eine Render-Methode. Das ist (sag ich mal) das minimum!

18

16.11.2015, 19:37

Na ach du Sch**** da hab ich ja noch was vor mir. hab ein halbwegs gutes Tutorial gefunden, werde mich dann mal wieder melden wenn ich es Verstanden habe :D

19

21.11.2015, 17:38

So hier bin ich wieder.
Ich verstehe das mit den Virtual Klassen endlich, aber weiß nicht wie ich das in Sfml konkret anwenden soll?

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

20

21.11.2015, 17:55

Ein Beispiel:

GameState.hpp:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#pragma once

#include "core\include\Game.hpp"

class Game;

class GameState
{
public:
    GameState() { };

    virtual void Update(Game &game) = 0;
    virtual void ProcessEvents(Game &game) = 0;
    virtual void Render(sf::RenderWindow &App) = 0;

};


HelpState.hpp:

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
28
29
30
31
#pragma once

#include "gameStates\include\GameState.hpp"
#include "gui\buttons\include\Button.hpp"

#include <string>
#include <memory>
#include <SFML\Graphics.hpp>

class Game;

class HelpState : public GameState
{
public:
    HelpState();

    void Update(Game &game) override;
    void ProcessEvents(Game &game) override;
    void Render(sf::RenderWindow &App) override;

    void loadHelpAssets();

private:
    sf::Font mFont;

    sf::Text    txtHelp;
    std::string sHelp;

    // Buttons
    std::shared_ptr<Button> mBackbutton;
};


Das HelpsState ist die Klasse für dass Hilfemenü. Ungefähr so muss du das mit allen anderen States machen.

Werbeanzeige