Maniac Mansion Mania Forum

MMM-Werkzeugkiste => Technik => Thema gestartet von: 1mal_volltanken am 07. Oktober 2010, 16:03:45

Titel: Display Speech positionieren
Beitrag von: 1mal_volltanken am 07. Oktober 2010, 16:03:45
Hallo Leutz!

Da ich ja den C64-Stil möglichst genau nachahmen möchte, darf sich natürlich der
Speech-Text
nicht mehr direkt mitten im Bild befinden, sondern muss oben in die Bildschirmecke.

In den General Settings habe ich unten rechts auch "Text window output use GUI 10" ein Häkchen drangemacht. Aber der Speech wurde trotzdem weiter zentriert im Bild gezeigt.
Vorher habe ich mich ja mit SayAt probiert, aber das ist ja auch keine optimale Lösung, zumal man bei SayAt auch irgendwie den Text wieder positionieren muss, da der Text automatisch zentriert wird und ich nicht weiss, wie ich dem Befehl noch "align=left" korrekt zuscripte.

Wenn ich im GUI-Editor bei GUI 10 (den schwarzen oberen Balken) "Text window" anhake, macht er das auf seine weise, in dem er das GUI 10 quasi zerstört und stattdessen ein Gewusel von Buttons einfügt.

Hat jemand da ein Tipp?


BG
der Volltanker


Titel: Re: Display Speech positionieren
Beitrag von: KhrisMUC am 07. Oktober 2010, 16:24:52
Das Button-Gewusel wird verwendet, um dem Fenster eine eigene Umrahmung geben zu können.

Bei SayAt kann man die Breite angeben, wenn man die also mit GetTextWidth holt, kann man den Text sozusagen manuell links ausrichten:

void SayTop(this Character*, String message) {
  int w = GetTextWidth(message, Game.SpeechFont) + 2;
  this.SayAt(1, 1, w, message);
}

Und jetzt einfach:
  cBernard.SayTop("Dieser Text steht am linken Rand.");
Titel: Re: Display Speech positionieren
Beitrag von: 1mal_volltanken am 07. Oktober 2010, 22:31:21
Danke Khris Muc! ;)

Naja, irgendwie funktionieren die Scripts 1:1 nicht. Vielleicht sollte ich doch mal versuchen, auf AGS 3.x umzusatteln.


BG
der Volltanker