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

11

23.08.2013, 11:24

Ich hab mich mal mit dem ganzen vector zeugs mal beschäftigt bzw. belesen...auch wenn ich noch nicht völlig durchsteige da es ja verschiedene möglichkeiten gibt.

So sollte es letztendlich funktionieren.zumindest in der theorie.

ich brauchs in der form...



struct ship{

int x;

int y;

int width;

int height;

}





testship1 = Createship(x, y, wx, wy)

testship2 = Createship(x, y, wx, wy)

es müsste sozusagen jedesmal beim aufrufen der funktion Createship ein neues objekt in form von struct ship angelegt werden.
ich muss auf die member dessen sowie auch auf testship1 und testship2 direkt zugreifen können.

Von einer anderen programmiersprache kenn ich das mit types, aber in c++ ist das wohl alles ein wenig komplexer.
das mit der vector class hab ich zum teil schon verstanden, jedoch wird da nicht immer nur ein neuer wert hinzugefügt?
ich stell mit das direkte ansprechen dann schon etwas komplexer vor.

Ich hoffe ich stelle nicht zu noobische fragen hier.

12

23.08.2013, 12:17

Nun, ich hoffe ich erkläre dir jetzt nichts falsches:
Wenn du deine Instanzen von Schiffen, nennen wir sie schiff1 und schiff2 in einem Vektor abgelegt hast, kannst du sie wieder herausholen indem du über den Vektor iterierst.
Wenn du nun ein Schiff als Rückgabewert einer Funktion, die ein Schiff aus deinem Vektor sucht, hast, nennen wir diese Funktion FindeSchiff, dann kannst du zum Beispiel folgenden Code verwenden:

C-/C++-Quelltext

1
2
3
4
5
6
Schiff FindeSchiff()
{
    ...
}

Schiff schiff1 = FindeSchiff();


In diesem Fall würde eine Kopie des gefundenen Schiffes mittels des Copy-Konstruktors der Schiff-Struktur in Schiff1 abgelegt werden. Direkt ansprechen tust du das Schiff allerdings noch nicht. Dazu könntest du aber z.B. FindeSchiff eine Referenz zurückgeben lassen:

C-/C++-Quelltext

1
2
3
4
Schiff& FindeSchiff()
{
    ...
}

In diesem Fall würde keine Kopie des gefundenen Schiffes angelegt werden, sondern die würdest direkt auf die Daten des gefundenen Schiffes zugreifen.

Ich hoffe das war was du wissen wolltest, und ich hoffe auch, dass ich dir jetzt keinen großen Mist erzählt habe :S, wenn doch dann bitte ich jeden der einen Fehler findet, mir diesen sofort zu nennen.

Liebe Grüße,
~ EuadeLuxe ~

13

23.08.2013, 13:54

das ist das was ich brauch...schlussendlich...
da ist auch noch bisschen quellcode verlinkt, mal schauen ob ich was davon selbst ableiten kann.

http://entity-systems.wikidot.com/fast-e…omponent-system

Werbeanzeige