Endyr, 27. Februar 2014 | |
Aktionspunkte | |
Was haben Objekte wie Schrank, Tisch und Bett gemeinsam? Man kann sie benutzen, solange sie in Reichweite sind. Anfangs war das nur eine Distanz-Prüfung. Aber was, wenn das Objekt ausser Reichweite war? Zunächst versuchte das Skript, die Spielfigur möglichst nahe zum Objekt zu bewegen und es dann erneut zu bedienen. Da dies jedoch nicht immer funktionierte, musste auf eine zeitaufwändigere Lösung umgestiegen werden, welche von Anfang an hätte implementiert werden müssen: Aktionspunkte. Bei jedem Objekt ist nun festgelegt, von wo aus man es bedienen kann. Ein Schrank hat z.B. je einen Aktionspunkt links und rechts. Es kostete mich deutlich mehr Arbeit (und die CPU mehr Rechenzyklen), aber wenn man jetzt ein Objekt anklickt, sucht die Engine den Pfad zum nächsten Aktionspunkt, bewegt die Figur dorthin, dreht sie passend zum Objekt und führt dann die Tätigkeit aus. War ein Objekt bisher von mehreren Spielern gleichzeitig bedienbar (z.B. ein 4-Personen-Tisch), so konnte dieses bei der Benutzung irgendwo in Reichweite stehen. Nun aber besetzt jeder einen eigenen Aktionspunkt und es ist vorgegeben, wo sich diese befinden. Zudem weiss der Client nun bereits im Vorfeld, ob noch ein Platz am Objekt frei ist. |
|