Hallo, zusammen!
Man, war ich lange nicht mehr hier... Aber es ist schön mal wieder einen Beitrag zu verfassen :-)
Also es geht darum, dass mir des Öfteren aufgefallen ist, dass die Tasteneingabe beim rm2k(3) gerade bei parallel laufenden Events ohne wait condition sehr unzuverlässig ist.
Hier mal mein Rennscript als Beispiel: Der Code ist in einem Common Event gespeichert und wird als parallel process ausgeführt. Startcondition ist der Switch "Hero run erlaubt":
Switch 17: Gibt an, ob der Hero gerade rennt
Var. 24: Der gespeicherte Keycode
var. 25: Sicherheitscounter (Erläuterung folgt)
EasyEventExporter hat geschrieben:
- SCRIPT -
<> Change Switch: [17] = OFF
<> Change Variable: [25] = 0
<> Change Variable: [24] = 0
<> Label: 1
<> Key Input Processing: Var. [24], Keys: Down, Left, Right, Up, Decision, Cancel, Shift
<> Fork Condition: If Variable [24] == 7 then ...
. <> Fork Condition: If Variable [25] < 25 then ...
. . <> Change Variable: [25] = 25
. . <>
. : End of fork
. <> Fork Condition: If Switch [17] == OFF then ...
. . <> Change Switch: [17] = ON
. . <> Move Event: Hero, Frq 8, Pattern: Inc spd
. . <> Wait Until Moved
. . <>
. : End of fork
. <>
: Else ...
. <> Fork Condition: If Variable [25] > 0 then ...
. . <> Change Variable: [25] -= 1
. . <>
. : Else ...
. . <>
. : End of fork
. <> Fork Condition: If Switch [17] == ON then ...
. . <> Change Switch: [17] = OFF
. . <> Move Event: Hero, Frq 8, Pattern: Dec spd
. . <> Wait Until Moved
. . <>
. : End of fork
. <>
: End of fork
<> Wait: 0,0 sec.
<> Jump To Label: 1
Zu Var. 25: Ich habe (wie schon angesprochen) bemerkt, dass bei solchen Events der Wert des Keycodes manchmal zwischen der gedrückten Taste und 0 springt, also sozusagen "flimmert"... Sobald aber einmal der richtige Keycode erkannt wird, wird der Sicherheitscounter auf 25 gesetzt. Ist dann einmal der Keycode 0, so wird der Sicherheitscounter um 1 dekrementiert und der Keycode wird manuell auf den gewünschten Wert gesetzt.
Der Keycode muss also 25 mal hintereinander 0 sein, damit er als tatsächlicher Abbruch gewertet wird. Funktioniert soweit ganz gut, macht aber immernoch zicken.
Jetzt meine konkreten Fragen:
Woran liegt das genau?
Wie kann man es verhindern/umgehen/minimieren?