Open OrianeJoublin opened 2 years ago
Auch das sollte mit CSS leicht machbar sein. Das Input-Feld wird einfach als Element in die Textausgabe mit hineingehängt und wird ohne weiteres Styling als Inline-Element dargestellt. tell
allerdings gibt die Texte in div-Elementen aus, die als Block dargestellt werden und die ganze Breite einnehmen.
Du musst also den tell
-Kommandos vor und nach dem getInput eine CSS-Klasse benennen, welche die Darstellung als inline
oder inline-block
erzwingt. Hierzu nutzt Du das display
-Attribut.
was mir hier noch auffällt: Du kannst auch einfach null
statt characters.narrator
(und display: none in CSS) angeben, wenn du keinen Charakternamen angezeigt haben möchtest.
Ist das geklärt und kann geschlossen werden?
Nee, ich wollte es gleich ausprobieren, hatte bisher keine Zeit
Okay, also ich habe es jetzt ausprobiert und es funktioniert leider nicht.
Dein Code scheint noch nicht aktualisiert auf Github, so kann ich nicht sehen, was Du gemacht hast...
Ich hab es jetzt aktualisiert.
Ah... ich verstehe erst jetzt das Problem, denke ich.
Das I'm erscheint ja schon jetzt auf der gleichen Zeile wie das Input-Feld, aber es geht nicht weiter danach, korrekt?
Das wäre auch entsprechend des Codes korrekt, weil Du ja auf den Input wartest.
Probiere Folgendes:
Speech gibt dir ein Versprechen, Input von deinem Nutzeri zu liefern. Warte nicht an Ort und Stelle, bis das Versprechen erfüllt ist, sondern merke es dir mit Hilfe einer neuen Variable. Schreibe statt
dataForSave.nameProtagonist = await ƒS.Speech.getInput();
jetzt
let promiseName: Promise<string> = ƒS.Speech.getInput();
Dann solltest Du zunächst den Text nach dem Input-Feld darstellen können. Erst wenn Du damit fertig bist, wartest Du auf die Erfüllung.
dataForSave.nameProtagonist = await promiseName;
Ja genau. Ich hab es gerade ausprobiert, aber jetzt erscheint gar kein Inputfeld mehr und die zwei Tell Texte vor und nach dem eigentlichen Inputfeld werden trotzdem erst nacheinander eingeblendet.
Wie kann man ein Inputfeld in derselben Zeile haben mit Text davor und danach? Also quasi in einer Zeile "I am __" (mit Anführungszeichen direkt hinter dem Feld) und dann nächste Zeile den Rest. Gerade wird jedes Mal der restliche Text gelöscht bevor der Text nach dem Inputfeld erscheint. Riem wusste da auf die Schnelle auch keine Lösung zu.
Code: https://github.com/OrianeJoublin/VisualNovel/blob/main/Template/Source/Scenes/S3_SceneWind1.ts Laufende Novel (direkt in der ersten Szene): https://orianejoublin.github.io/VisualNovel/Template/index.html