Allgemeine Frage zu OoP: Kommunikation zwischen Objekten

rollerueckwaerts

Erfahrenes Mitglied
Hallo liebe tutorials.de Gemeinde :)

Ich bin gerade dabei mit C# und dem XNA Gamestudio ein kleines Raumschiffspiel zu basteln.

Ich habe 3 Klassen.
1. GameScreen (auf dem die Objekte 2 u. 3 erzeugt und ausgegeben werden)
2. Raumschiff ( Der Spieler )
3. Asteroiden (fliegen durch den GameScreen und zerstören das Raumschiff)

Nun möchte ich eine Kollision einbauen wofür ich eine direkte Kommunikation zwischen den Objekten Raumschiff und Asteroiden brauche.

Wenn ich die Kollision in der GameScreen Klasse berechnne,
funktioniert das ganze schonmal, da in der GameScreen ja beide Objekte erzeugt worden sind,
jedoch möchte ich die Kollision in die Raumschiff Klasse auslagern, um die GameScreen Klasse klein zu halten.

Wie funkioniert das ?
Bisher erzeuge ich mit

Asteroiden asteroids = new Asteroiden();
ein neues Objekt im Gamescreen.

Wie kann ich jetz aus der Raumschiff Klasse auf die Eigenschaften und MEthoden des im GameScreen erzeugten Asteroiden Objekts zugreifen OHNE in der Raumschiff Klasse wieder neue Asteroiden zu erzeugen ?
Ich will ja keine neuen, sondern genau das Objekt was bereits im Gamesreen erzeugt worden ist ?


Ganz schön kompliziert das ganze darzulegen, aber vielleicht versteht es jemand und kann mir helfen :)
Is wahrscheinlich nur nen Denkfehler oder so ....


lg
tobi
 
Zuletzt bearbeitet:
Vorsicht, qualifizierter Beitrag;)

Du scheinst ja schon selbst drauf gekommen zu sein. Ich weis nicht genau, wie dein Programm aufgebaut ist, aber ich schmeis noch mal MethodInvoke als Stichwort hinzu;) Damit lassen sich zum Besipiel auch Threadübergreifende Geschichten realisieren.

qualifizierter Beitrag - ende:p

Als Anregung, du willst ja keine begrenzte Azahl von Asteroiden haben, sondern diese muss Dynamisch veränderbar sein, so stell ich mir das vor.

Auf jeden Fall macht es Sinn die Asteroiden zu verwallten, also Liste?!

Leg doch noch eine Klasse an, die nur für die Asteroiden zustämdig ist, also eine, in der du alle Objekte verwalltest. diese Klasse muss dan so realisiert sein, dass sie eine Navigierbarkeit zu allen anderen Klassen besizt, und andersrum auch, dan sollte es kein Problem sein deine Objekte zu verwallten:)
Also verwalte deine Objekte liebe in eine extra Klasse, nicht mit in Raumschiff.

MfG
 

Neue Beiträge

Zurück