User Tools

Site Tools


z:renderable

Renderable

Renderable-Objekte stellen die Schnittstelle dar über die Entity-Objekte ihre grafische Repräsentation manipulieren.

Grundlegende Überlegung

  • Der Aufbau aus SceneNodes usw. ist nur dem Renderable bekannt, die Entity kann davon nichts erfahren.
  • Animationenszustände sind intern komplexer aufgebaut als über das Interface ansprechbar. Nach außen verdeckt sind (optionale) Animationen die z.B. Übergänge zwischen verschiedenen Zuständen flüssig erscheinen lassen.

Interface-Entwurf

  • attachRenderable(vector3 position, renderable renderable), detachRenderable(renderable renderable)
  • setHealthState(string stateName) - Ändert Material- und Texturparameter wie in der Renderable-Definition spezifiziert.
  • setOwner(int playerNumber) - Ändert intern Parameter um die Spielerfarbe zu ändern.
  • setGateOpen(bool isOpen, float time) - Falls nicht schon im Zustand, öffne/schließe alle Tore/Luken in der spezifizierten Zeit.
  • rotateCannon(int cannonId, float vertAngle, float horzAngle) - Rotiert den der Kannonen-Id zugeordneten Bone bzw. die SceneNode.
  • hasHealthState(string stateName), hasCannon(int cannonId), hasAnim(string animName) - Abfragen um die Fähigkeiten des Renderables zu überprüfen..
  • setAnimIdle() - Spielt zufällig idle-Animationen.
  • setAnimShoot(time shotSpeed, time shootDelay) - Spielt zufällig abwechselnd Schuss-Animationen und Schusspausen-Animationen.
  • setAnimMove(float speed) - Spielt Bewegungsanimation ab und setzt evtl. Shader-Parameter.
  • setAnimCustom(string animName, time playSpeed) - Spielt die spezifizierte Animation einmal ab und wechselt dann in den vorherigen Zustand.
  • setCustomAnimLoop(string animName, time playSpeed) - Spielt die spezifizierte Animation in einer Schleife.
z/renderable.txt · Last modified: 2015/08/23 13:59 (external edit)