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
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].
Scaldur und wie vereinst dun Bewegung und rendern ohne getter?
Und nein gerade beim MVC Pattern ist es wichtig das ein Model auch eine gewisse Kontrolle und verarbeitung in ihren Gettern und settern hat.
Aber wie wird die Position einer Einheit (also das Objekt) verändert[...]
[...] und woher weiß die Umgebung wo die Einheit steht?
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Problem ist aber, dass man oft gar nicht rundrum kommt, weil gewisse Eigenschaften von gewissen Objekten eben von außen beeinflussbar sein müssen.
Wie ändere ich sonst die Elemente meiner Menü-Klassen, den Text in meinen GUI-Elemente, [...]
[...] die maximalen Lebenspunkte einer Spielfigur, die Haarfarbe einer Spielfigur [...]
[...] die Position eines Objekts in der Welt, etc pp?
Ob die Methode dabei "changeHairColor" oder "setHairColor" heißt, das ist dabei total egal, denn das Konzept hinter beiden ist das selbe.
Woher kennt der Renderer die Haarfarbe des Modells, wenn er sie nicht abfragen kann?
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Ohne Getter kannst Du aber auch die Elemente nicht in einem Editor zusammenstellen, denn dieser könnte die Werte ja nie wieder auslesen.Getter braucht man dann imo aber schon wieder nicht. Mein D3D GUI System beispielsweise, speichert überhaupt nur direkt das Layout der Glyphen in den UI Objekten und überhaupt keine semantische Information über den Text. Denn der Text muss ja von irgendwo herkommen, die semantische Information steckt also schon dort und gehört auf keinen Fall in die UI Objekte...
Unveränderlich nur bedingt, denn man muss dieses Maximum ja von Außen festlegen können, sonst kannst du nirgends verschiedene Gegner entwerfen.Maximale Lebenspunkte und Haarfarbe würde ich jetzt mal eher als Kandidaten für unveränderliche Attribute sehen.
Ja, da braucht man möglicherweise einen Setter, aber vermutlich keinen Getter. Oder umgekehrt.[/quote]Wenn das Modell sich selbst rendern kann, dann braucht es keinen Getter. Aber dann ist es automatisch ein ModelView, was auch nicht immer sonderlich cool ist. Wahlweise hat man dann eventuell ein Problem, dass Projektile oder andere Spieler/NPCs sich nie auf dieses Objekt hin bewegen könnten, weil sie die Position ja nicht abrufen können.[...] die Position eines Objekts in der Welt, etc pp?
Sehe ich nicht so. Es ist dann halt ein semantisches oder Anforderungs-Problem, weil die Eigenschaft von außen abrufbar und veränderbar sein muss. Ich glaube an kein Spiel, wo es solche Objekte nicht gibt. Außer alle Werte sind hardcoded oder direkt per Hex-Editor geschrieben. Alles andere würde irgendeine Art Objekt fordern, wo die Werte gelesen und gesetzt werden können. Das wären dann zusätzlich unnötige Container-Klassen, die nur für die Konfiguration zusammengeschustert werden und den Code unnötig aufblähen würden.Spätestens wenn man aber Getter und Setter für ein logisches Attribut hat, hat man imo ganz klar ein Designproblem.
Wenn Du das hast, sprich einen ModelView, dann heißt das aber auch, dass Du das Modell nicht verändern kannst, während es sich rendert. Parallelität ausgeschlossen, weil Seiteneffekte es unmöglich machen würden.Hängt davon ab wie das Objekt gerendert wird. Aber in der Regel hast du Objekte, die sich selbst rendern, daher brauchst du auch hier wieder entweder nur einen Getter oder nur einen Setter, auf keinen Fall aber beide.
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »BlueCobold« (25.07.2012, 19:28)
Werbeanzeige