Beneath A Steel Sky(BASS)-GUI auch für AGS 3.1.x?

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Wolfhart
Frischling
Frischling
Beiträge: 3
Registriert: 01.09.2009, 20:11

Beneath A Steel Sky(BASS)-GUI auch für AGS 3.1.x?

Beitrag von Wolfhart »

Hallo,

Newbie-Frage 2:
Ich möchte später mal eine BASS(-ähnliche)-Gui verwenden, deshalb am liebsten gleich von Anfang an diese benutzen. Dazu gibt es auch ein Template auf der AGS Ressource Page - das wurde allerdings für AGS 2.irgendwas geschrieben und funzt nicht bei AGS 3.1.2. Hm. Was kann ich tun :) ? Hat jemand vielleicht eine eigene Lösung parat?

Selber schreiben ginge natürlich auch - noch besser wäre aber natürlich, wenn jemand bereits eine Fertiglösung hat ;) Das schließt natürlich auch alternative GUIs ein, die in ihrer EInfachheit der BASS-GUI ähneln. Denn, was mich an der BASS-GUI fasziniert hat, war, das der Spieler schlichtweg keine Zeit verloren hat mit ständigem Wecheln der Modi. Also bsw. Gegenstand anschauen und mitnehmen:

linker Mausklick, rechter Mausklick.

Und nicht:
Geh zu Gegenstand - Mauszeiger hoch - View Mode auswählen - Maus runter - Gegenstand anschauen - Mauszeiger hoch - Use Mode auswählen - Mauszeiger runter - Gegenstand mitnehmen.

Ich finde halt einfach, ein Adventure sollte im Kopf stattfinden und nicht im Handgelenk.
Benutzeravatar
Helme
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 147
Registriert: 23.01.2009, 10:13

Re: Beneath A Steel Sky(BASS)-GUI auch für AGS 3.1.x?

Beitrag von Helme »

Ich denke, dass müsste funktionieren. Hat aber ein Kumpel von mir geschrieben und ein Profi bekommst dass sicher noch eleganter hin.

#sectionend on_mouse_click // DO NOT EDIT OR REMOVE THIS LINE
function on_mouse_click(MouseButton button){
int x = mouse.x;
int y = mouse.y;
if (button == eMouseLeftInv) {
if (mouse.Mode == eModeLookat) {
player.ActiveInventory = InventoryItem.GetAtScreenXY(x, y);
mouse.Mode = eModeUseinv;
}
else if (mouse.Mode == eModeUseinv) { // tries to combine something
InventoryItem * item = InventoryItem.GetAtScreenXY(x, y);
item.RunInteraction(eModeUseinv);
mouse.Mode = eModeLookat;
}
}
else if (button == eMouseRightInv) {
InventoryItem * item = InventoryItem.GetAtScreenXY(x, y);
item.RunInteraction(eModeLookat);
if(mouse.Mode == eModeUseinv) {
mouse.Mode = eModeLookat;
} // re-setting mouse mode if it was useinv
}
else if (button == eMouseLeft)
{
if(GetLocationType(x, y) == eLocationNothing) {
ProcessClick(x,y, eModeWalkto);
}
else {
if (mouse.Mode == eModeLookat) { // look
ProcessClick(x, y, eModeInteract);
}
else if (mouse.Mode == eModeUseinv) { // tries to useinv
ProcessClick(x, y, eModeUseinv);
mouse.Mode = eModeLookat;
}
}
}
else if (button == eMouseRight)
{
if (mouse.Mode == eModeUseinv) {
mouse.Mode = eModeLookat; // kick off inventory
}
else if(GetLocationType(x, y) != eLocationNothing) {
ProcessClick(x,y, eModeLookat);
mouse.Mode = eModeLookat;
}
}
}
-tash-
Frischling
Frischling
Beiträge: 4
Registriert: 08.11.2009, 14:21

Re: Beneath A Steel Sky(BASS)-GUI auch für AGS 3.1.x?

Beitrag von -tash- »

Das hat bei mir super funktioniert, vielen dank dafür
Antworten