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

Anonymous

unregistriert

1

08.02.2006, 16:34

Zugriff auf ein Objekt von einer anderen Klasse ?

Hallöchen !

ich habe da eine frage, bzw. problem.

ich habe in meinem spiel Gamestats wie z.b. Intro,mainmenu, Game, gameover etc.

in meinem Game habe ich folgende Objekte:
- Player_ship
- Gegner
- Explosion
- usw.

Player_ship ist das wichtige Objekt.

nun will ich, wenn ich verloren habe an den Gamestat "Gameover"
meine Punkte übergeben, die ich in dem Objekt "Player_ship" speichere.

mittels
player_ship ship_;

erzeuge ich das objekt.

jetzt mal zu meiner frage:
wie bekomme ich in mein "Gameover" den wert vom ship_.punkte ???

ich würde ja gerne das objekt an den Gameover übergeben und somit hätte ich ja zugriff auf die daten...
da ich aber kein c++ profi, sondern eher anfänger bin benötige ich dringend eure Hilfe.

würde mich über eine Lösung meiner Probleme sehr freuen.

Dieses Tutorial war meine Basis:

http://germangamedev.de/index.php?site=article&id=17


mfg Shalor

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

2

08.02.2006, 17:15

schreib doch für deine klasse player_ship einfach ne funktion getpoints() die die Punkte zurückgibt die in dem schiff gespeichert sind. dann rufst du gameover mit dem parameter player_ship->getpoints() auf.

3

09.02.2006, 15:33

geht, wenn du dir den Code runterlädst und versuchst dann dem neuen Gamestat werte zu übergeben, nicht wirklich.

Meine Klasse Player_ship hat schon eine funktion getPoints()
da ist alles berücksichtigt..
es geht mir eigentlich nur darum, wie ich von einem zum anderem Gamestat werte übergeben kann...
ob nun Text oder Zahlen.

Am besten mal den Code auf der angegebenen Internetseite angucken,
dann wisst ihr, was mein Problem ist.

Phili

unregistriert

4

09.02.2006, 16:15

Oder man benutzt "friend". Ist aber nicht unbedingt empfehlenswert, wird unübersichtlich...

Lemming

Alter Hase

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

5

09.02.2006, 16:16

eine möglichkeit ist dem state manager einen void zeiger zu übergeben, den dieser an den neuen gamestate dann weiter gibt... die methode musst du natürlich umschreiben...
könnte dann so aussehen:

C-/C++-Quelltext

1
2
3
4
long *pScore = new long;
*pScore = 1000100l;
statemanager::Instance().SetState(factory::GS_Highscore, (void*)pScore);
delete pScore;pScore = NULL;
ist die einfachste lösung, die mir einfällt.
kannst dir natürlich auch ne gamestate parameter klasse schreiben, von der geerbt wird und die immer übergeben, aber für ne highscore fänd ich das übertrieben ;)
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

Werbeanzeige