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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

11

26.12.2015, 12:49

Nö, musst du nicht... ;)

12

26.12.2015, 12:50

Warum nicht ? Macht das SFML schon von alleine ? :D

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

13

26.12.2015, 12:52

Was hat das mit SFML zu tun, wir sprechen hier von C++ Grundlagen!? Es gibt verschiedene Arten, in C++ Objekte zu erzeugen. Ich schlage vor, dass du dir dieses Thema nochmal gründlich anschaust...

14

26.12.2015, 12:56

Ok mache ich. Also kann ich es einfach als Membervariable initialisieren ?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

15

26.12.2015, 12:58

Na einfach einen Member vom entsprechenden Typ machen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class A
{
  ...
public:
  A(int x)
  {
    ...
  }
};

class B
{
  A a;  // member a ist Objekt vom Typ A
public:
  B()
    : a(42)  // a initialisieren
  {
  }
};

16

26.12.2015, 15:46

Und so wird dann auch die Klasse A mit Initialisiert ?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

17

26.12.2015, 18:53

Ja der Member a wird natürlich mitinitialisiert, so wie jeder Member... ;)

18

26.12.2015, 20:43

Habe hier nochmal die Framework.hpp und Framework.cpp neu gemacht sieht das schon besser aus ? :D Oder sollte ich noch was ändern ? :o

Framework.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
#pragma once

#include <SFML\Graphics.hpp>

using namespace sf;
using namespace std;

class CFramework {

public:
    CFramework              (int WindowWidth, int WindowHeight, string Title);

    void Run                ();

private:
    void Update             (float ElapsedTime);
    void Render             ();
    void HandleEvents       ();
    void Quit               ();

    float GetElapsedTime    ();

    RenderWindow            Window;
    Event                   Event;
    Clock                   Clock;

    float                   ElapsedTime;
    bool                    Running;

};


Framework.cpp

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include "Framework.hpp"

CFramework::CFramework(int WindowWidth, int WindowHeight, string Title) {

    Running = true;

    Window.create(VideoMode(WindowWidth, WindowHeight), Title, Style::Titlebar | Style::Close);

}

void CFramework::Run() {

    while (Running) {

        Update(ElapsedTime);
        Render();
        HandleEvents();
        Quit();
        GetElapsedTime();

    }

}

void CFramework::Update(float ElapsedTime) {

    

}

void CFramework::Render() {

    Window.clear();
    Window.display();

}

void CFramework::HandleEvents() {

    while (Window.pollEvent(Event)) {

        if (Event.type == Event::Closed) {

            Running = false;

        }

    }

}

void CFramework::Quit() {

    if (Running == false) {

        Window.close();

    }

}

float CFramework::GetElapsedTime() {

    ElapsedTime = Clock.getElapsedTime().asSeconds();
    Clock.restart();

    return ElapsedTime;

}


Zitat

Na einfach einen Member vom entsprechenden Typ machen:


Wollte jetzt die Ball.hpp, .cpp, Enemy.hpp und .cpp fertig machen und dann machen melde mich wenn ich es fertig habe :)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

19

26.12.2015, 20:46

Anstatt im Konstruktor Running = true; zuzuweisen, würde man den Member besser einfach direkt initialisieren. Aber sieht schon viel besser aus... ;)

20

26.12.2015, 20:50

Ok :) Also meinst du es so ?

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
#pragma once

#include <SFML\Graphics.hpp>

using namespace sf;
using namespace std;

class CFramework {

public:
    CFramework              (int WindowWidth, int WindowHeight, string Title);

    void Run                ();

private:
    void Update             (float ElapsedTime);
    void Render             ();
    void HandleEvents       ();
    void Quit               ();

    float GetElapsedTime    ();

    RenderWindow            Window;
    Event                   Event;
    Clock                   Clock;

    float                   ElapsedTime;
    bool                    Running = true;

};

Werbeanzeige