Aktion einer Taste beim Spielstart automatisch durchführen (Win32api)
Hi!
Jeder kennt sicherlich das Skript fürn Vollbild ...
Das setzt man ja in Main am Anfang rein. Kann mir jmd. so einen Skriptteil coden, der nicht Alt+Enter ausführt, sondern F12 (zurück zum Titel)? Schön wäre natürlich, wenns nur einmal beim Spielstart passiert ... könnte man einfach mit einer globalen Variable/Switch steuern.
Danke & greetz
Jeder kennt sicherlich das Skript fürn Vollbild ...
|
|
Quellcode |
1 2 3 4 5 6 7 |
unless $keybd $keybd = Win32API.new 'user32.dll', 'keybd_event', ['i', 'i', 'l', 'l'], 'v' $keybd.call 0xA4, 0, 0, 0 $keybd.call 13, 0, 0, 0 $keybd.call 13, 0, 2, 0 $keybd.call 0xA4, 0, 2, 0 end |
Das setzt man ja in Main am Anfang rein. Kann mir jmd. so einen Skriptteil coden, der nicht Alt+Enter ausführt, sondern F12 (zurück zum Titel)? Schön wäre natürlich, wenns nur einmal beim Spielstart passiert ... könnte man einfach mit einer globalen Variable/Switch steuern.
Danke & greetz
Ja, genau deswegen ^^.
Und es zeigt wirkung =), danke!
Tja ... naja, flüssig ist vllt. das falsche Wort, die fps schiessen warscheinlich nicht in die Höhe oder so. Es geht mehr darum, dass der Maker kürzer zum Laden und abfragen benötigt, als beim ersten Start. Das ist auch warscheinlich erst bei wirklich vielem Zeug bemerkbar und vorteilhaft.
Ich hatte z.B. das Problem, dass ich konstantes Stocken in gewissen Abständen hatte ... was an der großen Menge an CE lag. Einmaliges F12 drücken beim start und das stocken war beseitigt. Ich hatte ja zuerst ein Code geschrieben, dass er zu Anfang einmal die Scene_Title neu aufruft, aber hatte leider nicht den selben Effekt wie F12 drücken ^^.
greetz
Und es zeigt wirkung =), danke!
Tja ... naja, flüssig ist vllt. das falsche Wort, die fps schiessen warscheinlich nicht in die Höhe oder so. Es geht mehr darum, dass der Maker kürzer zum Laden und abfragen benötigt, als beim ersten Start. Das ist auch warscheinlich erst bei wirklich vielem Zeug bemerkbar und vorteilhaft.
Ich hatte z.B. das Problem, dass ich konstantes Stocken in gewissen Abständen hatte ... was an der großen Menge an CE lag. Einmaliges F12 drücken beim start und das stocken war beseitigt. Ich hatte ja zuerst ein Code geschrieben, dass er zu Anfang einmal die Scene_Title neu aufruft, aber hatte leider nicht den selben Effekt wie F12 drücken ^^.
greetz
Sry 4 Doppelpost
Muss dich leider enttäuschen, Cremno. Nach längerem testen ist mir doch aufgefallen, dass deine Codezeilen leider nicht den erwünschten Effekt hervorbringen. Ich hab es getestet, einmal mit Codezeilen ohne F12 und einmal ohne Codezeilen mit F12.
Beim letzteren tritt dieses Stock Phänomen nicht auf, beim ersten jedoch schon auch wenns im Vergleich zu vorher (hab ja Technik neu gemacht und optimiert) jetzt nicht soo schlimm ist, aber mich stört es.
Also ... meine Bitte gilt immer noch ... danke!
greetz
Muss dich leider enttäuschen, Cremno. Nach längerem testen ist mir doch aufgefallen, dass deine Codezeilen leider nicht den erwünschten Effekt hervorbringen. Ich hab es getestet, einmal mit Codezeilen ohne F12 und einmal ohne Codezeilen mit F12.
Beim letzteren tritt dieses Stock Phänomen nicht auf, beim ersten jedoch schon auch wenns im Vergleich zu vorher (hab ja Technik neu gemacht und optimiert) jetzt nicht soo schlimm ist, aber mich stört es.
Also ... meine Bitte gilt immer noch ... danke!
greetz
Hm.. ich denke, ich gucke mir diesen Effekt mal genauer an ^^
Und um deiner Bitte nachzukommen - hier das (virtuelle) Drücken der F12-Taste:
Auf dieselbe Art wie das "Vollbildskript" einfügen.
EDIT: Ich muss dich leider enttäuschen: Das funktioniert das nicht. Wieso weiß ich auch nicht, aber ich guck mir das nochmal an, denn 0x7B bzw. 123 ist doch der richtige Virtual-Key Code?
Und um deiner Bitte nachzukommen - hier das (virtuelle) Drücken der F12-Taste:
|
|
Ruby Quellcode |
1 2 3 4 5 6 |
if !$f12 $f12 = Win32API.new('user32', 'keybd_event', 'L' * 4, nil) $f12.call(0x7B, 0, 0, 0) $f12.call(0x7B, 0, 2, 0) $f12 = true end |
Auf dieselbe Art wie das "Vollbildskript" einfügen.
EDIT: Ich muss dich leider enttäuschen: Das funktioniert das nicht. Wieso weiß ich auch nicht, aber ich guck mir das nochmal an, denn 0x7B bzw. 123 ist doch der richtige Virtual-Key Code?
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Cremno« (26. Januar 2009, 19:24)
ich hab versucht ne lösung zu finden, und jetzt tut mein RGSS Player nicht mehr.
ich weiß nicht ob die 'i'-s richtig sind aber...
also beim ersten mal hats geklappt, dannach war das Projekt kaputt
cow
|
|
Ruby Quellcode |
1 2 |
neustart = Win32API.new('user32','keybd_event','iiii','i') neustart.call(0x7B,0,0,0) |
ich weiß nicht ob die 'i'-s richtig sind aber...
also beim ersten mal hats geklappt, dannach war das Projekt kaputt

cow
zum Lesen den Text mit der Maus markieren
So.
Es kann sein, dass der Start ein wenig länger dauert, aber es funktioniert!
@Cow: Das lässt die F12-Taste gedrückt, jedoch fehlt das Loslassen (drittes Argument ist dann 2)
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 |
if !$f12 Thread.start{ $f12 = Win32API.new('user32', 'keybd_event', 'L' * 4, nil) $f12.call(0x7B, 0xDA, 0, 0) sleep(0.01) $f12.call(0x7B, 0xDA, 2, 0) $f12 = true } end |
@Cow: Das lässt die F12-Taste gedrückt, jedoch fehlt das Loslassen (drittes Argument ist dann 2)
Hi, danke schonmal für die Mühe!
Ich muss dich leider wieder enttäuschen ... es bringt nicht den erwünschten erfolg. Ich hab mal den Vkey für F1 statt F12 eingesetzt und das funzt auch, sprich es kommt dieses optionsfenster beim start.
Aber F12 will irgendwie net. Die Startzeit müsste logischerweise etwas länger sein, da er ja noma das Spiel startet ... es bleibt aber genau so lang/kurz. Und dieses stocken ist weiterhin da, nur durch manuelles drücken der F12 Taste ist es weg ... ohne witz ^^.
Ich kann das ganze übrigens genaustens überwachen indem ich auf die FPS schaue.
Ca. jede 20 sekunde geht die FPS ganz kurz von 40 auf 37/38 runter und dann wieder hoch ... und genau das ist dieses stocken, hier bleibt es seeehr kurze zeit eben stehen.
Durch F12 drücken verschwindet das ... jedoch muss ich es, trotz deines Skriptes, manuell machen.
:-\
greetz
Ich muss dich leider wieder enttäuschen ... es bringt nicht den erwünschten erfolg. Ich hab mal den Vkey für F1 statt F12 eingesetzt und das funzt auch, sprich es kommt dieses optionsfenster beim start.
Aber F12 will irgendwie net. Die Startzeit müsste logischerweise etwas länger sein, da er ja noma das Spiel startet ... es bleibt aber genau so lang/kurz. Und dieses stocken ist weiterhin da, nur durch manuelles drücken der F12 Taste ist es weg ... ohne witz ^^.
Ich kann das ganze übrigens genaustens überwachen indem ich auf die FPS schaue.
Ca. jede 20 sekunde geht die FPS ganz kurz von 40 auf 37/38 runter und dann wieder hoch ... und genau das ist dieses stocken, hier bleibt es seeehr kurze zeit eben stehen.
Durch F12 drücken verschwindet das ... jedoch muss ich es, trotz deines Skriptes, manuell machen.
:-\
greetz
Ähnliche Themen
-
RGSS 1 Probleme & Talk »-
Mouse-Input-Skript Fehler
(3. Dezember 2008, 21:56)
-
Eventtechnik Archiv »-
Kampfsystem (mit Combos) für XP
(9. Januar 2005, 14:49)
-
Einsteigerhilfe »-
Wie erstelle ich ein Trailer zu meinem Game?
(5. November 2007, 15:43)
-
Events & Technik »-
Karte einblenden
(16. Juni 2006, 18:51)
-
Events & Technik »-
Eigener Titelscreen bleibt bei Auswahl hängen
(10. Mai 2006, 14:40)

