Fragen zum GUI und Idleview

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Okami Joe
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 13
Registriert: 28.01.2007, 13:53
Kontaktdaten:

Fragen zum GUI und Idleview

Beitrag von Okami Joe »

Ich habe vor, die Konversationen meiner Charaktere optisch etwas aufzuwerten, und hab mir gedacht, ich lasse Gespräche in einem anderen Schema ablaufen:
Es erscheinen zwei goße Fenster, die jeweils ein animiertes Portrait meiner Figuren beinhalten, die gesprochenen Texte werden ebenfalls dem jeweiligen Portraitbereich zugeordnet.
Es soll so sein, dass währendessen keine Interaktion im eigentlichen Raum stattfindet, da er beinah komplett von diesen Fenster abgedeckt wird.
Meine Frage ist jetzt, lässt sich sowas anstellen mittels eines weiteren "custom" GUI? Oder stößt man da auf Grenzen was Animation und Texte angeht?
Bevor ich einen falschen Weg einschlage, dachte ich, ich frag mal nach :?

Ein weiteres Problem wäre der Idleview:
Ich will die Wartezeit von den Default 20 auf 10 Sekunden runterschrauben, habe in der Hilfe die entsprechende Scriptzeile gefunden, aber wo-zum-Geier gehört diese Zeile im Script hin??
Egal wo ich sie hingesetzt hab, ich krieg immer ne Fehlermeldung...

Danke im Voraus!
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Welche Fehlermeldung? Welchen Code hast Du verwendet?
(Das man das immer noch fragen muss...)

Das Ändern des idle delay "gehört" in game_start, kann aber theoretisch irgendwo rein, solange es INNERHALB einer Funktion ist.
Wie immer bei der Frage "Wohin mit dem code?" lautet die Gegenfrage: "WANN soll er ausgeführt werden?"

Wegen des GUIs:
Für große, sprechende Portraits nimmt man am Besten Charaktere. Mach für jeden Charakter einen zusätzlichem mit dem animierten Portrait als SpeechView.
Da GUIs grundsätzlich vor allem Anderen dargestellt werden, kannst Du keins verwenden.
Mach also vor dem Dialog ein RawSaveScreen();, zeichne mit RawDraw das "GUI" ein und plaziere dann die Portrait-Charaktere im Raum und lass sie reden.

Am Ende des Dialoges wird dann alles wieder in den Ausgangszustand zurückgesetzt.

Code: Alles auswählen

// script header
import function before_dialog(Character*other_char_dialog);
import function after_dialog();

// global script
Character*ocd;

function before_dialog(Character*other_char_dialog) {
  RawSaveScreen();  // Bildschirminhalt speichern
  RawDrawImage(x, 10, 10);  // Dialog-Hintergrund zeichnen
  ocd=other_char_dialog;  // anderes Portrait merken
  ocd.Room=player.Room;  // anderes Portrait
  cPlayerdialog.Room=player.Room;  // player-Portrait
}

function after_dialog() {
  ocd.Room=-1;  // anderes P. ausblenden
  cPlayerdialog.Room=-1;  // player-P. ausbl.
  RawRestoreScreen();  // ursprüngl. Bildschirm wiederherstellen
}

export before_dialog;
export after_dialog;
Du musst dann eine zweite RunScript-Action nach der mit dem Dialog einfügen und after_dialog(); in dieser aufrufen, denn Dialoge werden immer erst am Schluss einer Skriptfunktion ausgeführt (eine Runscript-Action = eine Skriptfunktion).
Use gopher repellent on funny little man
Okami Joe
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 13
Registriert: 28.01.2007, 13:53
Kontaktdaten:

Beitrag von Okami Joe »

Danke für die Antwort, ich mach mich gleich mal ran!

Das mit dem Idle Delay funzt immer noch nicht...
Also, laut der Help-Datei braucht man die Zeile

character[EGO].SetIdleView(12, 30);

die ich an #sectionstart game_start setze und auf
meinen charakter [Ich] umschreibe, beim speichern krieg ich die
Meldung: Parse Error - unexpected 'character'
Irgendwas mach' ich da falsch glaub ich, oder ist der Befehl nicht korrekt?
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Wie gesagt, der Befehl muss IN der Funktion stehen, also irgendwo zwischen "game_start() {" und "}".

Statt character[ICH] geht auch cIch.
Use gopher repellent on funny little man
Antworten