Frage zu RawDrawImage

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
finupsen
Frischling
Frischling
Beiträge: 5
Registriert: 26.09.2007, 19:09
Wohnort: Dortmund
Kontaktdaten:

Frage zu RawDrawImage

Beitrag von finupsen »

Hallo,

Ich möchte ein Buch mit vor/zurück-blättern Funktion darstellen.
Momentan mache ich das mit "Room" und die entsprechenden
Buchseiten als RoomFrame. Für die Interaktion benutze ich ganz
normal die GUI-Elemente (Buttons). Der Nachteil dabei ist die
begrenzte Anzahl der Frames...

Meine Fragen:

Kann ich statt dessen auch RawDrawImage benutzen ?
Wenn ja, wie sieht das mit der GUI und Interaktionen aus ?

Evtl. würde ich statt GUI-Buttons lieber im Image gezeichnete
Elemente verwenden. Welche Möglichkeiten gibt es dazu ?

MfG
Andy
Benutzeravatar
Fightmeyer
Riesiger Roboteraffe
Riesiger Roboteraffe
Beiträge: 7308
Registriert: 16.12.2004, 22:51
Wohnort: Potsdam
Kontaktdaten:

Beitrag von Fightmeyer »

Statt der GUI könntest Du einfach einen Hotspot erstellen, der beim Klicken reagiert.
finupsen
Frischling
Frischling
Beiträge: 5
Registriert: 26.09.2007, 19:09
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen »

Aber ein Hotspot bezieht sich doch auf ein Raum.... oder ?
Der player soll aber in jedem Raum ein Buch lesen können.
Benutzeravatar
Fightmeyer
Riesiger Roboteraffe
Riesiger Roboteraffe
Beiträge: 7308
Registriert: 16.12.2004, 22:51
Wohnort: Potsdam
Kontaktdaten:

Beitrag von Fightmeyer »

Dafür gibt es doch glaube ich die Funktion prevroom. Damit kriegst Du immer raus, in welchem Raum der Char vorher war. Du mußt dann quasi beim Aufruf des Buches den Wechsel in einen anderen Raum machen (Buchraum) und beim Schließen des Buches wieder zurück in den vorherigen Raum.
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Genau, player.PrevRoom heißt es.

Alternative:
Ein bildschirmgroßes GUI mit Buttons zum Blättern, dessen Hintergrund die Buchseiten anzeigt.

Beim Blättern einfach den Hintergrund wechseln (GUI.BackgroundGraphic).

Wenn's beim Room bleiben soll, Hotspots oder GUIButtons zum Blättern verwenden, mit RawDrawImage() den Raumhintergrund aktualisieren.
Wenn ja, wie sieht das mit der GUI und Interaktionen aus?
Geht's etwas genauer? Wo ist das Problem?
Use gopher repellent on funny little man
finupsen
Frischling
Frischling
Beiträge: 5
Registriert: 26.09.2007, 19:09
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen »

@KhrisMUC

Stimmt. Das war mir irgendwie entfallen das man auch GUI-Hintergründe
wechseln kann. Sorry, bin noch recht neu bzgl. AGS ;)

Ich hab aber noch einen anderen Ansatz gefunden (denke ich mal):

Code: Alles auswählen

int show_bookID = 0;
Overlay *bookOverlay;

function removeBook() {
	show_bookID = 0;
	bookOverlay.Remove();
}

function showBook(int ID) {
  if (show_bookID==0) {
		bookOverlay = Overlay.CreateGraphical(0, 0, ID, false);
		show_bookID = ID; 
	}
}
Den Click zum Umblättern und Beenden mache dann so:

Code: Alles auswählen

function repeatedly_execute() {
	if (show_bookID>0 && Mouse.IsButtonDown(eMouseLeft)) {
		int y = mouse.y;
		int x = mouse.x;
		if ( (y>80 && y<120) && (x>80 && x<120) ) {
			removeBook();
		}
	}
   ...
   ... 
}
Die Frage ist jetzt nur, wie ich den Raum im hintergrund (mit allen hotspots, regions und obejcts)
verschwinden lassen kann.

Ist das denn überhaupt sinnvoll was ich da mache, oder sollte ich doch besser das ganze über
die GUI realisieren ?
finupsen
Frischling
Frischling
Beiträge: 5
Registriert: 26.09.2007, 19:09
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen »

Hallo , ich nochmal.

Also das funktioniert perfekt. Ich setze zusätzlich noch:
gMyGUI.visible = false
DisableInterface();

Der Raum bleibt da wo er ist, nur das Buch befindet sich im Vordergrund.
Das schaut wirklich gut aus ;)

Trotzdem Danke an alle ...
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Hm, der Code in rep_ex ist bissl umständlich, warum nicht einfach ein GUI nehmen, es in showBook anschalten und in removeBook ausschalten?

Rein theoretisch schadet es nix, aber IMO sollte man die rep_ex soweit wie möglich von allem befreien, was nicht rein muss.
Use gopher repellent on funny little man
finupsen
Frischling
Frischling
Beiträge: 5
Registriert: 26.09.2007, 19:09
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen »

Ja, du hast recht. Ich weiss zwar nicht, wie teuer ein

Code: Alles auswählen

 if (show_bookID>0 && Mouse.IsButtonDown(eMouseLeft))
ist, aber der Satz "in repeatedly_execute nur das rein, was nötig ist"
ist quasi ein Totschlag-argument.

Ich werds dann doch wieder umbauen ;)

Vielen dank für die Info
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Nicht teuer.
Wie gesagt, es schadet nix, aber es schadet auch nicht, es von Anfang an "richtig" zu machen :)
Use gopher repellent on funny little man
Antworten