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.
Beneath A Steel Sky(BASS)-GUI auch für AGS 3.1.x?
-
- Frischling
- Beiträge: 3
- Registriert: 01.09.2009, 20:11
- Helme
- 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?
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;
}
}
}
#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;
}
}
}
-
- Frischling
- Beiträge: 4
- Registriert: 08.11.2009, 14:21
Re: Beneath A Steel Sky(BASS)-GUI auch für AGS 3.1.x?
Das hat bei mir super funktioniert, vielen dank dafür