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?
Nur ein Cursor im Startbildschirm
-
- Komplettlösungsnutzer
- Beiträge: 22
- Registriert: 12.01.2005, 16:56
- Floyd
- Logik-Lord
- Beiträge: 1088
- Registriert: 14.03.2004, 19:59
Antwort
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.
Wenn dies der Fall ist, passiert nichts. Das sieht ungefähr so aus:
Ich hoffe, das hilft dir ...
MfG Floyd
Im Global Script definierst du eine neue Global Int, z.B. 1, diese setzt du auf 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.SetGlobalInt(1,0);
Wenn dies der Fall ist, passiert nichts. Das sieht ungefähr so aus:
Wenn nun dein Hauptmenü aufgerufen wird, setzt du den den Mousezeiger auf den Pointer und Global Int 1 auf 1: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 das Spiel startet, setzt du die GlobalInt einfach wieder auf 0 und CursorMode sowie MouseCursor auf 0.SetGlobalInt (1,1); // Rechte Maustaste deaktiviert!!!
SetCursorMode (6);
SetMouseCursor (6);
Ich hoffe, das hilft dir ...
MfG Floyd
Der verschwundene Husky - ein 2D Point&Click Adventure
Einen schönen Orbit, Bürger!
Einen schönen Orbit, Bürger!
- Sinitrena
- Tastatursteuerer
- Beiträge: 678
- Registriert: 08.05.2004, 01:01
- Wohnort: Frankfurt
- Kontaktdaten:
Floyd, nix gegen dich , aber Cerberus, bitte überlies seinen Post. Umständlicher gehts nämlich nicht.
Die function die du brauchst lautet:
Glaub mir, das geht um einiges schneller als mit GlobalInts
Die function die du brauchst lautet:
Damit es dann noch auf dem Cursor steht, den du haben willst, benutzt du SetCursorMode.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
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"
- Floyd
- Logik-Lord
- Beiträge: 1088
- Registriert: 14.03.2004, 19:59
...
Ja das ist natürlich einfacher, aber viel komplizierter ist das mit dem GlobalInt auch nicht.
MfG Floyd
MfG Floyd
Der verschwundene Husky - ein 2D Point&Click Adventure
Einen schönen Orbit, Bürger!
Einen schönen Orbit, Bürger!
-
- Komplettlösungsnutzer
- Beiträge: 22
- Registriert: 12.01.2005, 16:56
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.
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.
- Floyd
- Logik-Lord
- Beiträge: 1088
- Registriert: 14.03.2004, 19:59
...
Die ICONBAR schaltest du mit GUIOff(0); aus.
MfG Floyd
MfG Floyd
Der verschwundene Husky - ein 2D Point&Click Adventure
Einen schönen Orbit, Bürger!
Einen schönen Orbit, Bürger!
- Sinitrena
- Tastatursteuerer
- Beiträge: 678
- Registriert: 08.05.2004, 01:01
- Wohnort: Frankfurt
- Kontaktdaten:
Meinst du etwas in der Art: DisableCursorMode (1, 2, 3, ...)?Kann ich auch innerhalb einer einzigen Klammer alls Cursorfunktionen deaktivieren, außer der des Pointers?
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"