RPG-Maker Quartier

Hier dreht sich alles um die RPG-Maker-Reihe von ASCII/Enterbrain. Der RPG-Maker ist ein Tool, mit dem du dir dein eigenes kleines Rollenspiel erstellen kannst. Du findest hier alles, was du dazu brauchst. Aber natürlich umfasst die Community noch mehr!
Aktuelle Zeit: Di Mär 03, 2020 2:26

Alle Zeiten sind UTC + 1 Stunde



Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
Offline
Attention-whore
Attention-whore
Benutzeravatar
Beiträge: 1549
Alter: 27
Wohnort: Essen / Bergerhausen
BeitragVerfasst: Mi Mär 21, 2012 0:35 
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?

_________________
Bild


Nach oben
 Profil ICQ  
Mit Zitat antworten  
Offline
Pseudo-Elitär
Pseudo-Elitär
Benutzeravatar
Beiträge: 1408
Alter: 33
Wohnort: Dort wo's nicht brennt im Grünen~
BeitragVerfasst: Mi Mär 21, 2012 9:56 
Das ist ein ganz einfacher Hardware-Fehler/ Kompatibilitätsproblem. Ich nehme mal an, du hast ein neueres System, höchstwahrscheinlich Multi-Core. Da der Maker ein recht altes Programm ist, sind Kompatibilitätsprobleme keine Seltenheit.

Ich hatte sowas auch schonmal bei einem Pixelmovement-Script gelöst. Dein Ansatz ist schon in Ordnung. Ich würde allerdings einiges umstellen.
25 Sicherheitspausen sind Übertrieben. So ungefähr 5-15 sind ausreichend. Das musst du ausprobieren. Hängt immer vom System ab. Ziehe dann generell 1 am Ende des Events ab, nicht nur, wenn sich die Variable verändert hat. Nach jedem Move-Befehl lässt du Variable 25 dann auf einen gewünschten Sicherheitswert setzen.
Eventuell würde ich die Wait Until Moved weglassen. Du hast immerhin schon einen Wait-Befehl am Ende des Events.

Eine andere Frage:
Was macht das Script? Nur das Tempo des Helden erhöhen.

_________________


Nach oben
 Profil ICQ  
Mit Zitat antworten  
Offline
Attention-whore
Attention-whore
Benutzeravatar
Beiträge: 1549
Alter: 27
Wohnort: Essen / Bergerhausen
BeitragVerfasst: Mi Mär 21, 2012 11:46 
Vielen Dank für die Tipps! Ja, das Script wartet nur darauf, dass "Shift" gedrückt wird und erhöht dann das Tempo, bis "Shift" wieder losgelassen und das Tempo vermindert wird. Ist ziemlich minimalistisch, aber es geht ja um das grundsätzliche Problem. Schrittgeräusche, Terrainabhängige Animationen und der restliche Kram können dann noch nachgerüstet werden.

EDIT: So, hatte nen Fehler im Code. Die dritte Fork sollte eigentlich wieder zu Label 1 springen, ausserdem war die leere Else Condition sinnlos. Funktioniert jetzt tadellos :) Vielen Dank!

_________________
Bild


Nach oben
 Profil ICQ  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de