Was ist der beste Weg, um Skinbare „Schaltflächen“ in einem Videospiel zu zeichnen?

StackOverflow https://stackoverflow.com/questions/7017

  •  08-06-2019
  •  | 
  •  

Frage

Ich suche nach Ideen, wie man in einer Spielanwendung einen Skin-fähigen „Button“ zeichnen kann.Wenn ich für den Schaltflächenhintergrund ein festes Sprite-Bild ohne Vektor verwende, kann ich die Größe der Schaltfläche nicht einfach anpassen.Wenn ich Code schreibe, um eine in der Größe veränderbare Schaltfläche zu zeichnen (so wie Windows-Schaltflächen gezeichnet werden), muss der Programmierer mitmachen – und das erschwert das Skinning.Eine andere Möglichkeit besteht darin, die Schaltfläche in 9 kleinere Bilder (3x3) zu unterteilen und sie alle zu strecken – so wie abgerundete Ecken in HTML gemacht werden.

Gibt es einen anderen „einfacheren“ Weg?Was ist der beste Ansatz?

War es hilfreich?

Lösung

Wenn Sie dies wirklich erreichen möchten, können Sie dies mit Texturkoordinaten erreichen.Ähnlich wie Sie in HTML ein dehnbares Schaltflächen-/Panel-Design mit einer Tabelle erstellen würden, definieren Sie einfach die UV-Koordinaten für die Ecken, den oberen dehnbaren Bereich, den unteren dehnbaren Bereich, die seitlichen dehnbaren Bereiche und dann die Mitte.

Ein Beispiel dafür, wie dies in einer XNA-Engine implementiert wird (obwohl es sich um eine Closed-Source-Engine handelt), finden Sie hier:http://www.flatredball.com/frb/docs/index.php?title=SpriteFrame_Tutorial

Andere Tipps

Ja.Ich arbeite an einem Editor.Es ist eine XAML-ähnliche Sprache (oder OpenLaszlo-ähnliche, wenn Sie es vorziehen) für XNA.So können die Schaltflächen vom Editor in der Größe geändert werden.Die Größe der Schaltflächen kann auch über ein Stylesheet geändert werden.

Ich schätze, Sie haben Recht, dass die Knöpfe in einem echten Design wahrscheinlich alle die gleiche Größe haben werden.Aber auch in einer Fenster-App müssen Sie manchmal eine Schaltfläche breiter machen, um Text unterzubringen.

Mit Shadern sollte es möglich sein.Sie müssten wahrscheinlich Texel-Suchen durchführen, aber es würde die Anzahl der Dreiecke in einer komplexen Benutzeroberfläche reduzieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top