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

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

11

21.01.2016, 18:12

Warum eine Klasse nur eine Aufgabe haben sollte?
Weil das im Endeffekt nur Vorteile hat.

- Du sparst dir schon mal Zeit bei der Fehlersuche. (Das Objekt hat die falsche Farbe, also ist irgendwas beim Zeichnen falsch. Damit fällt Kollisionserkennung, Bewegung, etc. als mögliche Fehlerquelle schon mal weg)
- Es macht die Sache übersichtlicher. (Du hast immer nur einen kleinen Teil, den du dir angucken musst und musst nicht alles im Geiste ausblenden, was mit dem aktuellen Problem nichts zu tun hat)
- Du kannst einzelne Module einfach austauschen. (Du kannst einen anderen Algorithmus für die Wegfindung verwenden, ohne das alles andere mit angefasst werden muss, etc.)

Das du dann mehr Klassen brauchst, als wenn du zwei oder drei Gottklassen hast ist klar, aber das ist ja kein Problem solange die vernünftig sortiert sind.

Nächste Frage: Wenn es ein "FirstUFO" gibt, wird es doch wahrscheinlich auch ein "SecondUFO" geben?
Wie Unterscheiden sich die beiden Klassen denn?
Für mich hört sich das nämlich eher danach an, als ob du Klasse und Objekt durcheinander mischst.

12

21.01.2016, 19:20

Gut, dann werde ich das berücksichtigen. Heißt dann aber auch, dass ich mehr Pakete zur Strukturierung nutzen sollte, oder?
Nein, die Sachen schmeiße ich nicht durcheinander :). Mit FirstUFO ist nur gemeint, dass das die erste "Schwierigkeitsstufe" der UFOs sein soll. Es kann dann mehrere FirstUFOs geben. SecondUFOs könnte dann zum Beispiel schießen. Aber auch dieser Name schient eher schlecht gewählt zu sein.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

13

22.01.2016, 06:55

Ich würde es nicht unbedingt auf den Namen schieben. Ich würde die Fähigkeit, ob es schießen darf oder nicht, als Teil der Klasse Ufo sehen und nicht mehrere Ufo-Klassen bauen. Dann ist Bewaffnung eines Ufos eben optional und das war's.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

14

22.01.2016, 11:51

Ich hätte eigentlich schon gedacht, dass für jeden Typ von Gegner eine eigene Klasse Sinn machen würde, und dann natürlich auch als Unterklassen.
Wenn jetzt zum Beispiel die erste Art von UFO gar nichts kann außer sich bewegen, die zweite kann sich bewegen und schießen, und die dritte kann sich bewegen und Aliens spawnen - dann machen doch mehrere UFO-Klassen Sinn, oder nicht?

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

15

22.01.2016, 12:09

Wenn die Klasse UFO ein Attribut "Bewegungsgeschwindigkeit" hat dann brauchst du keine zwei Klassen, um ein bewegbares und unbewegbares zu haben.
Eins bekommt dann eben eine Geschwindigkeit von 0.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

16

22.01.2016, 12:32

Wenn jetzt zum Beispiel die erste Art von UFO gar nichts kann außer sich bewegen, die zweite kann sich bewegen und schießen, und die dritte kann sich bewegen und Aliens spawnen - dann machen doch mehrere UFO-Klassen Sinn, oder nicht?
Spawnen macht vielleicht noch Sinn als extra Klasse, vielleicht auch nicht. Bewegen und schießen oder nur bewegen oder nur schießen, das sind prima Dinge, die sich durch Attribute wie "Bewaffnung" und "Geschwindigkeit" allein abbilden lassen, ohne dass Du da gleich eine neue Klasse für brauchst.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

17

22.01.2016, 14:05

Für verschiedene Verhaltensweisen kannst du dir an sich mal Strategy angugucken.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

18

22.01.2016, 22:42

Ich versuche die Vorschläge mal in UML umzusetzen und werde das dann hier posten. Strategy sagt mir nichts, schaue ich mir dann aber auch an :).

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

19

22.01.2016, 23:52

Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

20

23.01.2016, 15:11

So, Strategy habe ich mir angesehen und sieht für meinen Fall ja sehr sinnvoll aus.
Ich will das Ganze jetzt erstmal ohne zum Laufen kriegen, danach probiere ich damit aber definitiv was rum.
Design Patterns sehen auch sehr interessant aus und kannte ich auch noch nicht, werde ich mich rein arbeiten.

Habe jetzt mal einige Änderungen an dem UML-Diagramm vorgenommen:


(Link)


Was ich vielleicht noch dazu sagen sollte ist, dass die Linien ohne Pfeile bedeuten, dass die Klassen miteinander "zu tun" haben. Bisher heißt das bloß, dass die jeweiligen Klassen auf eine Methode oder ein Attribut eines Managers zugreifen.

Werbeanzeige