S
Maxi schrieb:
das problem an deiner methode ist, dass du in deinen Vektor nur waffen eines bestimmten Typs hauen kannst. d.h. du kannst zB dein LAserschiff nicht mit einem raketenwerfer aufrüsten. ich geh jetz ma davon aus, dass jede waffe eine eigene klasse hat.
Nein, ich habe für die Waffen nur eine Klasse. Der einzige Unterschied zwischen den Waffen sind nur die jeweiligen Werte (Genauigkeit, Schaden, Wirkung auf Panzerung, Wirkung auf Schilde usw...) Der Laser hat z.B. einen GrundSchaden von 100 , der Rak-Werfer nur von 50 usw...
Somit brauche ich ja nur einen vector der Klasse c_weapon. Um den Typ der Waffe zu definieren, übergebe ich dem Konstruktor der Klasse c_weapon einen string mit dem Typ der Waffe. Sollte z.b. ein Schiff 2 Laser haben, so muss ich dafür auch nicht 2 Instanzen anlegen, da ich in der Klasse c_weapon eine Membervariable deklariert habe, die die Anzahl der jeweiligen Waffe beinhaltet. Bei der Berechnung des Schadens wird dieser dann einfach mit der Anzahl der Waffen multipliziert, somit habe ich mir eine weitere Instanz der Klasse gespart.
Maxi schrieb:
Ich würde sagen es wird zeut dich in einen neuen themenbreich einzuarbeiten
Neu ist der Themenbereich ja nicht für mich, ist nur sehr sehr lange her, wo ich damit gearbeit habe, deswegen weiß ich nicht mehr so genau darüber bescheid. Aber ich bin schon dabei es zu Wiederholen
Maxi schrieb:
btw.: get/set-methoden für die waffen... hm.. vielleicht eine AddWepaon()
aber getmethoden... weiß nich. Kann hilfreich sein, muss aber nich
AddWeapon() benötige ich eigentlich nicht, da die Zuweisung der Waffen ja im Konstruktor der Schiffsklasse geschieht. Und nachträglich werden keine Waffen hinzugefügt. Dort werden je nachdem welcher Typ an den Konstruktor übergeben wurde, die verschiedenen Schiffe mit ihren Waffen (vector<c_weapon>) erstellt.
get-methoden brauche ich, wenn es nicht auch anders geht, um meine Schadensberechnung und -zuweisung vorzunehmen. In der weapon-Klasse wird noch die Funktion zur Schadensberechnung eingefügt. Dieser Funktion muss ich die Werte des Gegnerischen Schiffes übergeben (Hülle, Panzerung, Schild usw..., halt alles was zur Berechnung des Schadens benötigt wird) Ist der Schaden dann ermittelt, muss die Funktion den Wert zurückliefern, damit ich diesen dann von dem Hüllenwert des Gegnerischen Schiffes subtrahieren kann.
Außerdem wollte ich die get-methoden eigentlich dafür haben, damit ich die Werte der Schiffe ausgeben kann. Auf die Schiffswerte kann ich ja ohne Probleme zugreifen, auf die Waffenwerte auch (so wie ich es momentan gemacht habe)
Deklariere ich den vector v_weapon allerdings private, so müsste ich dafür ja wieder eine set/get-methode definieren, mit der ich wiederum auf die set/get-methoden der Klasse c_weapon zugreifen kann. Ich denke dass dies unnötger aufwand wäre. Auf die Membervariablen kann ich ja eh nicht direkt zugreifen, dafür habe ich ja die Funktionen der c_weapon Klasse. Also ist es doch eigentlich überflüssig für diese nochmals eine Zugriffsfunktion in der Schiffsklasse zu definieren!?