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

ZIR

Frischling

  • »ZIR« ist der Autor dieses Themas
  • Private Nachricht senden

41

22.04.2010, 15:28

vielen dank

ZIR

Frischling

  • »ZIR« ist der Autor dieses Themas
  • Private Nachricht senden

42

22.04.2010, 15:36

Eine Frage ich möchte in diesen string stream "Highscore:" und anschließend den int Wert Highscore reinschreiben.
Wenn ich das so mache.

C-/C++-Quelltext

1
2
                string. << m_Highscore;
                string.str ("Highscore: ");

Wird nur Highscore angezeigt.
Wenn ich diese beiden Zeilen vertausche, dann wird der Highscore vor "Highscore:" geschoben, wie kann man das sonst noch machen?
:Sorry für den Doppelpost hab zu spät bemerkt, dass ich nen neuen post schreibe gibt es irgendeine Möglichkeit den hier zu löschen?

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

43

22.04.2010, 15:48

Man konnte mal den eigenen Beitrag löschen, aber ka wie.

Jedenfalls musst du bedenken, das bei

C-/C++-Quelltext

1
string.str("");

lediglich eine Art Leerung stattfindet.

Was du willst, ist aber Zeichen hinzuzufügen, das machst du mit dem "<<" Operator, also folgendermaßen:

C-/C++-Quelltext

1
2
3
4
5
6
7
string.str(""); // Sicherheitsleerung
string << "Highscore: ";
string << myInt;

// Folgendes geht natürlich auch:

string << "Highscore: " << myInt;


MfG
WIP Website: kevinheese.de

little_Progger

Treue Seele

Beiträge: 188

Wohnort: Nähe Bielefeld

Beruf: Azubi

  • Private Nachricht senden

44

22.04.2010, 15:50

Wenn ich mich nich irre, liegt das Problem am Leerzeichen.
Wie du es besser machen könntest um das gleiche Ergebnis zu erhalten weiß ich grad aber selbst nicht.

ZIR

Frischling

  • »ZIR« ist der Autor dieses Themas
  • Private Nachricht senden

45

22.04.2010, 17:57

@ Nachoman:
Falls ich für jeden Gamestate ne eigene Klasse nehmnen würde wäre es ratsam eine jede Gamestate Klasse so zu schreiben, die in etwa so aussieht.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
class Gamestate1
{
public:
Gamestate1();
~Gamestate1 ();
void render ();
void update ();
usw.

und dann render und update mit dem was bei dem gamestate gerendert werden soll und was geupdatet werden soll zu füllen, sodass ich in der main Funktion dann nurnoch Gamestate1->Render () und Update aufrufen muss oder wie wäre es ratsam?

46

22.04.2010, 18:34

Sagt dir das Schlüsselwort virtual etwas? Wäre in diesem Fall sehr praktisch.
Kannst dir auch eine setGameState Methode coden, dann brauchst du nicht jedes Mal abfragen welcher Gamestate gerendert werden soll.
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

ZIR

Frischling

  • »ZIR« ist der Autor dieses Themas
  • Private Nachricht senden

47

22.04.2010, 18:55

Das heißt ich soll mir eine basisklasse erstellen von der alle gamestates erben lassen und dann zum Beispiel das so machen: (B: Basisklasse G1:Gamestate1 G2:Gamestate2)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
B *BaseClass;
BaseClass = new G1;

SetGamestate (G2)
{
delete (BaseClass);
BaseClass = new G2;
}

Also das jetzt nur mal als Beispiel, sodass ich in der main-loop nur noch einmal BaseClass->Render und Update aufrufen muss und garnicht mehr verzqeigen oder wie meinst du das?

48

22.04.2010, 19:00

Ja so ähnlich, du musst dann nur noch setGameState aufrufen und schon wechselt er und rendert automatisch weiter. Du musst halt dafür sorgen, dass automatisch der State initialisiert wird und dass er dann automatisch rendert. Versuch es einfach mal. Vielleicht könnten dir templates ja auch noch behilflich sein.
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

ZIR

Frischling

  • »ZIR« ist der Autor dieses Themas
  • Private Nachricht senden

49

25.04.2010, 22:55

So ich hab jetzt mal alles umgesetzt was ihr mir so gesagt habt.
Ich habe jetzt eine Hp Kontrolle hinzugefügt, einen Highscore und ein Menü, im Menü zum starten S und zum Beenden B drücken, naja auf jedenfall les ich überall, dass ein guter code wichtig ist, aber da ich ein Anfänger bin habe ich überhaupt gar keine Ahnung was guter Code ist und was nicht, ich habe mal den kompletten code hochgeladen und wollte fragen, ob irgendjemand vll mal reingucken könnte und mir sagen könnte was ich verbessern könnte, falls wer zeit hat.
http://www.filedropper.com/asteroids

50

27.04.2010, 21:12

Guter Code ist subjektiv, z.B. finde ich, dass:



1- Der Code sauber einzurücken ist.

2- Bezeichner sollten an den Sinn gebunden sein.

3- Der Code übersichtlich gegliedert sein sollte (zeilen frei lassen, nicht jede muss code enthalten).

4- Guter Code ist immer ordentlich kommentiert!



1 und 2 beherzigst du, bei 3 (blöcke von 20 Zeilen, siehe highscore.cpp, ich hätte da ca. 5 leerzeilen gemacht) hätte mal ab und zu eineine leerzeile hineingekonnt. Kommentiert hast du garnichts.



Dies ist nur meine Meinung. Vielleicht fragst du dich wofür Kommentare, kein anderer liest ja meinen Code. Aber wundere dich nicht, wenn du ein halbes Jahr später in das Spiel schaust genau weisst, du hast es dort getan aber nicht weist wo, wie und warum. :D

Werbeanzeige