Nur ein Cursor im Startbildschirm

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Cerberus81
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 22
Registriert: 12.01.2005, 16:56

Nur ein Cursor im Startbildschirm

Beitrag von Cerberus81 »

Hi!

Muss mal wieder mit einer Frage nerven.

Nachdem ich mich nun endlich ans Scripten wage, und auch das Prinzig im Groben schon einigermaßen verstanden habe, bin ich trotzdem noch zu blöd, bloß einen Cursor im Startbildschirm anzeigen zu lassen.
Soll heißen: Da steht der Titel des Spiels und unten sind zwei Button: START und EXIT. Nun möchte ich gerne, dass man in diesem Bild nur den Pointer zur Verfügung hat, und nicht auch mit dem Augo, oder Benutzensymbol auf die Buttons klicken kann.
Wie geht das?
Benutzeravatar
Floyd
Logik-Lord
Logik-Lord
Beiträge: 1088
Registriert: 14.03.2004, 19:59

Antwort

Beitrag von Floyd »

Ich weiß nicht ob es die eleganteste Lösung ist aber so hab ich es gemacht:

Im Global Script definierst du eine neue Global Int, z.B. 1, diese setzt du auf 0.
SetGlobalInt(1,0);
Weiter unten im Global Script taucht die Funktion on_mouse_click auf. Damit man nicht mehr durch die einzelnen Modi scrollen kann, fragst du hier ab, ob die Global Int (1) auf 0 gesetzt ist (in dem Fall kann durchgescrollt werden) oder einen anderen Wert hat, z.B. 1.
Wenn dies der Fall ist, passiert nichts. Das sieht ungefähr so aus:
function on_mouse_click(int button) {
// called when a mouse button is clicked. button is either LEFT or RIGHT
if (IsGamePaused() == 1) {
// Game is paused, so do nothing (ie. don't allow mouse click)
}
else if (button==LEFT) {
ProcessClick(mouse.x, mouse.y, GetCursorMode() );
}
else { // right-click, so cycle cursor
if (GetGlobalInt (1) == 0) {
SetNextCursorMode();
}
else {
}


}
}
Wenn nun dein Hauptmenü aufgerufen wird, setzt du den den Mousezeiger auf den Pointer und Global Int 1 auf 1:
SetGlobalInt (1,1); // Rechte Maustaste deaktiviert!!!
SetCursorMode (6);
SetMouseCursor (6);
Wenn das Spiel startet, setzt du die GlobalInt einfach wieder auf 0 und CursorMode sowie MouseCursor auf 0.


Ich hoffe, das hilft dir :) ...
MfG Floyd
Benutzeravatar
Sinitrena
Tastatursteuerer
Tastatursteuerer
Beiträge: 678
Registriert: 08.05.2004, 01:01
Wohnort: Frankfurt
Kontaktdaten:

Beitrag von Sinitrena »

Floyd, nix gegen dich :roll: , aber Cerberus, bitte überlies seinen Post. Umständlicher gehts nämlich nicht.
Die function die du brauchst lautet:
DisableCursorMode
DisableCursorMode (int mode)

Disables the mouse cursor MODE. Any attempts to set the cursor to this mode while it is disabled (like using SetMouseCursor) will fail. This function also greys out and disables any interface buttons whose left-click command is set as "Set mode X", where X is equal to MODE.
If the current cursor mode is MODE, then the engine will change it to the next enabled standard cursor.

Example:

DisableCursorMode(MODE_WALK);

will make unaivalable the walk mode until it’s enabled again. See Also: EnableCursorMode
Damit es dann noch auf dem Cursor steht, den du haben willst, benutzt du SetCursorMode.
Glaub mir, das geht um einiges schneller als mit GlobalInts
Zuletzt geändert von Sinitrena am 03.02.2005, 20:11, insgesamt 1-mal geändert.
http://www.sinitrena.de.vu Meine Spiele: "A very special dog", "A magic stone", "James Bond - Who wants to live again?", "Lonely Night", "Death of an Angel", "The Witch, the Wizard and the Blue Cup", "Emerald Eyes"
Benutzeravatar
Floyd
Logik-Lord
Logik-Lord
Beiträge: 1088
Registriert: 14.03.2004, 19:59

...

Beitrag von Floyd »

:oops: Ja das ist natürlich einfacher, aber viel komplizierter ist das mit dem GlobalInt auch nicht.
MfG Floyd
Cerberus81
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 22
Registriert: 12.01.2005, 16:56

Beitrag von Cerberus81 »

Vielen Dank für die schnelle Hilfe euch Beiden!

Kann ich auch innerhalb einer einzigen Klammer alls Cursorfunktionen deaktivieren, außer der des Pointers?

Wie kann ich außerdem die ICONBAR im Startbildschirm ausschalten? Habe es mit disableinterface versucht, aber das scheint nicht zu funktionieren.
Benutzeravatar
Floyd
Logik-Lord
Logik-Lord
Beiträge: 1088
Registriert: 14.03.2004, 19:59

...

Beitrag von Floyd »

Die ICONBAR schaltest du mit GUIOff(0); aus.
MfG Floyd
Benutzeravatar
Sinitrena
Tastatursteuerer
Tastatursteuerer
Beiträge: 678
Registriert: 08.05.2004, 01:01
Wohnort: Frankfurt
Kontaktdaten:

Beitrag von Sinitrena »

Kann ich auch innerhalb einer einzigen Klammer alls Cursorfunktionen deaktivieren, außer der des Pointers?
Meinst du etwas in der Art: DisableCursorMode (1, 2, 3, ...)?
Das geht nicht, du musst schon schreiben:
DisableCursorMode (1);
DisableCursorMode (2);
...

Noch ein kleiner Tipp:
GUIOff (0); funktioniert natürlich problemlos, kann aber zu leichten Problemen führen, wenn man mal einen GUI löscht, weil sich dann die Nummern verschieben, deshalb benutze ich immer GUIOff (ICONBAR); Aber das ist wohl auch irgendwie Gescmackssache was man da nimmt.
http://www.sinitrena.de.vu Meine Spiele: "A very special dog", "A magic stone", "James Bond - Who wants to live again?", "Lonely Night", "Death of an Angel", "The Witch, the Wizard and the Blue Cup", "Emerald Eyes"
Antworten