Hauptmenü

Neuigkeiten:

Bitte unterstützt uns und bestellt über diese Links bei Amazon  oder HumbleBumble!

Display-Anzeige integrieren

Begonnen von 1mal_volltanken, 08. April 2011, 17:46:44

Vorheriges Thema - Nächstes Thema

1mal_volltanken

Hallo Leutz!

Ich interessiere mich gerade, wie Ihr eine aktive Display-Anzeige in einem Hintergrund integrieren würdet.

Sprich, solche, die als Temperaturanzeige, Gewichtsanzeige oder sonstige Meßfunktionen dienen und auf allen Stellen auch alle Zahlen anzeigen können (bspw. auf 3 Stellen alle möglichen Werte zwischen 000 und 999).
Dazu möchte ich gerne auch grafische Ziffern verwenden (kein Font).

Die konservative Lösung wäre, für jede Stelle jede Ziffer als Objekt einzufügen.
Für 3 Stellen würde das allerdings 30 Objekte benötigen und für 4 Stellen sogar 40, wenn man auf jeder Stelle alle Zahlen von 0-9 unterbringen möchte.
In technischer Hinsicht ist dieses Vorgehen natürlich Unsinn und schon wegen der Begrenzung der Objektanzahl nicht machbar.

Wie würdet Ihr das denn machen?


BG
der Volltanker

"Tage sind eigentlich wie Nächte...nur nicht ganz so spät!"...hörte ich einmal einen sehr klugen, alten Mann beim Erdnüsse sortieren in der Kneipe sagen, kurz bevor er vom Hocker rutschte.


"Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde!"

1mal_volltanken

Obwohl, mir fiel das grad was ein:

Wäre das nicht möglich, bspw. bei 3-Stelligen-Ziffern drei Objects zu nehmen und diese als Views zu verwenden?

Es gäbe da sicher doch auch ne Möglichkeit, wie bei Hintergründen (SetBackgroundFrame) ähnliches mit Objekten zu machen, oder?
Eben, dass nicht eine komplette Animation abgespielt wird, sondern nur jeweils der bestimmte Frame eingeblendet wird.


BG
der Volltanker
"Tage sind eigentlich wie Nächte...nur nicht ganz so spät!"...hörte ich einmal einen sehr klugen, alten Mann beim Erdnüsse sortieren in der Kneipe sagen, kurz bevor er vom Hocker rutschte.


"Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde!"

Cone Arex

F1 -> Object functions?
Es gibt ein Befehl, mit dem man die Object-Grafik ändern kann. int object.Graphic = slot nummer; oder SetGraphic statt Graphic. Kenn den Befehl grad nicht auswendig.


Folge mir auf X und itch.io

KhrisMUC

Da gibt es verschiedene Möglichkeiten; persönlich würde ich die Zahl bei jeder Änderung neu zeichnen, und zwar auf ein DynamicSprite, das als .BackgroundGraphic eines GUIs gesetzt wird.

[ags]DynamicSprite*MyDisplay;

void UpdateDisplay(int value) {

  String s = String.Format("%03d", value);  // hier wird z.B. 47 zu "047"

  DrawingSurface*ds = MyDisplay.GetDrawingSurface();
  ds.Clear();

  int i, n;
  while (i < 3) {
    n = s.Chars - 48;   // hier mache ich aus den Zeichen des Strings die Ziffern, z.B. s.Chars[1] ist '4' bzw. 52 (ascii) und wird somit zur Zahl 4
    ds.DrawImage(i*20, 0, n + 15);   // die Ziffernsprites sind 18 Pixel breit, 2 Pixel Abstand -> i*20,  die Sprites haben die Slotnummern 15-24, -> n +15
    i++;
  }
  ds.Release();

  gMyDisplay.BackgroundGraphic = MyDisplay.Graphic;   // sprite als Hintergrund setzen (eigentlich nur einmal nötig)
}[/ags]

Der Vorteil eines GUIs liegt auf der Hand, es ist nämlich raumunabhängig. Ansonsten müsste ich für jeden Raum die drei oder vier Anzeige-Objekte erstellen.