Nabend, wenn ich eine Kampfabfrage, also ein Wertevergleich zwischen zwei Objekten machen will und am Ende die Funktion z.B. den Wert Lebenspunkte zurückgeben soll, wie mache ich das am schlausten? Sprich, sollte die Funktion einfach die Werte der Objekte aufrufen und ich mach die Berechnung, also welche Werte sind höher und wieviel von Lebenspunke werden dann abgezogen, dann mit switch-case oder so? Vorschläge? :) EDIT: Die Variable "Lebenspunkte" muss dann ja auch überschrieben werden, damit der Abzug gespeichert wird, wie mache ich das? Danke schonmal und Entschuldigung für die Newbie-Frage :D
:
Bearbeitet durch User
Hallo, was möchtest du denn genau tun? Verstehe ich das richtig, dass du 2 Objekte hast und diese, auf Basis von einem Attribut "Lebenspunkte", miteinander vergleichen willst? Und was soll nach dem Vergleich noch geschehen? mfg, OP
Nein nein, die Objekte haben mehrere Attribute, z.B. Angriffsstärke und Rüstung und am Ende wird der Schaden der noch übrig bleibt von den Lebenspunkten abgezogen (stark vereinfacht z.B. 4 Angriff 2 Verteidigung = -2 auf Leben) D.h. einmal muss diese Berechnung geschehen und dann die Überschreibung der Variable auf den neuen Wert. (Anstatt 14LP nur noch 12)
Dann mach doch einfach ne Methode angriff(int), der du die Angriffspunkte des Angreifers übergibst und die Berechnung, wie das Überschreiben, führt der Angegriffene selbst aus. Also das wäre jetzt ne einfache Methode, aber halt auch nicht soo schön.. Schöner wäre es mit einem übergeordnetem "Manager", damit quasi kein Spieler einfach einen Angriff nicht von seinen Punkten abzieht. Wenn du übrigens zwei Objekte vergleichst und dabei immer der selbe Wert abgeglichen wird, gibt es auch Operatorüberladung. Vielleicht kannst du das ja auch mal gebrauchen bei deinem "Spiel"? http://openbook.galileocomputing.de/visual_csharp_2010/visual_csharp_2010_07_003.htm mfg, OP
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.