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

denjo

Treue Seele

  • »denjo« ist der Autor dieses Themas

Beiträge: 163

Wohnort: BLB

  • Private Nachricht senden

11

27.11.2006, 21:03

Achso.

Und wie kann ich sie implementieren?
-> sry das ich so fragen muss...

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

12

28.11.2006, 18:39

Gib ihnen einen Funktionsrumpf.

C-/C++-Quelltext

1
2
3
4
5
6
CSprite::~CSprite(void)
// Funktionsrumpf Start

{

// Funktionsrumpf Ende

}

denjo

Treue Seele

  • »denjo« ist der Autor dieses Themas

Beiträge: 163

Wohnort: BLB

  • Private Nachricht senden

13

28.11.2006, 19:44

In der main.cpp Datei?

mfg denjo

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

14

28.11.2006, 19:57

Das ist eine Designfrage...

Theoretisch kann das in jede *.cpp Datei, die den Header mit der Klassendefinition einbindet.

Praktisch macht man es meistens so, dass man je eine *.cpp und *.h Datei mit dem Selben Namen erstellt und da dann eine (oder mehrere) Klasse proggt.

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
// Sprite.h


// Includeguard


#ifndef SPRITE_H
#define SPRITE_H

class Sprite
{
Sprite();
// ...

};

#endif // Includeguard


// Sprite.cpp


#include "sprite.h"

// Definitionen


Sprite::Sprite()
{
// ...

}

denjo

Treue Seele

  • »denjo« ist der Autor dieses Themas

Beiträge: 163

Wohnort: BLB

  • Private Nachricht senden

15

28.11.2006, 20:06

Ja, die Klassen bestehen ja schon alle...

z.B.: Sprite.hpp und Sprite.cpp

denjo

Treue Seele

  • »denjo« ist der Autor dieses Themas

Beiträge: 163

Wohnort: BLB

  • Private Nachricht senden

16

29.11.2006, 13:39

Also hier ist der main.cpp Quellcode, den ich umgeformt habe

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
#include "Framework.hpp"
#include "Game.hpp"
#include "Menu.hpp"

int main (int argc, char *argv[])
{
  // Framework initialisieren

  if (g_pFramework->Init (800, 600, 16, true) == false)
    return (0);
  
  // Neue Instanz des Menüs

  CMenu Menu;

  // Menu initialisieren

  Menu.Init ();

  // Menü anzeigen lassen

  Menu.ProEvent ();

  // Menu beenden

  Menu.Quit ();

}


die vorige main.cpp Datei lautete:


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
#include "Framework.hpp"
#include "Game.hpp"

int main (int argc, char *argv[])
{
  // Framework initialisieren

  if (g_pFramework->Init (800, 600, 16, true) == false)
    return (0);
  
  // Neue Instanz des Spiels

   CGame Game;

  // Spiel initialisieren

  Game.Init ();

  // Spiel laufen lassen. Diese Funktion läuft so lange,

  // bis das Spiel geschlossen oder die Escape-Taste

  // gedrückt wird

  Game.Run ();

  // Spiel beenden

  Game.Quit ();

  // Framework beenden

  g_pFramework->Quit ();
  g_pFramework->Del ();

  return (0);

}


ich habe mir gedacht, dass ich die Funktionen zum Spielstart mit denen zum Menüstart austausche.

Was müsste ich denn an der main.cpp Datei ändern das alles funktioniert?

mfg denjo

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

17

29.11.2006, 16:09

Ich glaube kaum, dass der Fehler in der Main liegt.
Es ist wichtig, dass du die *.cpp Dateien alle dem Projekt hinzugefügt hast. Ansonsten müsstest du mal die Klassendefinitionen posten schätz ich.

riCo

Treue Seele

Beiträge: 165

Beruf: Student

  • Private Nachricht senden

18

29.11.2006, 18:12

Vielleicht solltest du erstmal damit anfangen ne Klasse von klein an zu Designen und dir somit das nötige Wissen aneigen. Ich gehe davon aus das du Novize bist..

Headerdatei = Klassenimplementierung. Sprich die Klasse mit ihren eigentlichen Methoden, Variablen usw. I.d.R. sollten dort keine Funktionen Implementiert sein(es gibt Ausnahmen, zb Templates aber das vernachlässigen wir ersteinmal). In der cpp(Quellcodedatei) bestückst du die Funktionen mit leben und ruft die Headerdatei auf. Sonst findet er die Funktionen und Methoden nicht.


Beispiel:

Headerdatei

C-/C++-Quelltext

1
2
3
4
5
6
class MyClass
{
public:
MyClass();
~MyClass();
};


Quellcodedatei

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
#include "HeaderdateinameDerKlasse"

MyClass::MyClass()
{
;
}

MyClass::~MyClass()
{
;
}
Wir leben alle unter dem Sternenhimmel, aber wir haben nicht alle den gleichen Horizont.

denjo

Treue Seele

  • »denjo« ist der Autor dieses Themas

Beiträge: 163

Wohnort: BLB

  • Private Nachricht senden

19

30.11.2006, 14:19

Ja also jede Klasse z.B. Menu oder Sprite besitzt ja eine Header und eine *.cpp Datei.


zu grek40:

Zitat von »"grek40"«

Ich glaube kaum, dass der Fehler in der Main liegt.
Es ist wichtig, dass du die *.cpp Dateien alle dem Projekt hinzugefügt hast. Ansonsten müsstest du mal die Klassendefinitionen posten schätz ich.


Was bedeutet Dem Projekt hinzugefügt?

->Das ich sie alle kompiliert habe?...

mfg denjo

Beneroth

Alter Hase

Beiträge: 969

Wohnort: Schweiz

Beruf: Software Entwickler

  • Private Nachricht senden

20

30.11.2006, 23:14

ins Projekt hinzufügen, damit sie mitkompiliert werden.

Alles mit cpp oder c am ende muss kompiliert werden ;)

Werbeanzeige