RPGVX.net
RPG-Maker VX => VX Technik [Frageforum] => Thema gestartet von: MicroJumper am Dezember 08, 2010, 20:47:54
-
Hi Leute...
Ich versuche schon seit etwa 4 Stunden (bin Anfänger^^) ein Script zum laufen zu bringen aber ich find einfach keine Lösung...
das Script soll später machen dass der Spieler zufällig blinzelt aber das krieg ich selber hin...^^ (und bitte sagt mir nicht schon die lösung wie ich den zum Blinzeln kriegen kann denn ich will ja auch was dabei lernen ;])
mir geht es erstmal darum wie ich in folgendem von mir angefertigtem Beispiel jede Sekunde ein "lol" ausgespuckt bekomme und sich das ganze wiederholt!
class Blinzeln
def Blinzeln.start
print "lol"
Blinzeln.restart
end
def Blinzeln.restart
@wait_count = 60
Blinzeln.start
end
end
das funktioniert wenn ich die Methode durch folgende zeile in einem Call Script in einem Autostart-Event (es löscht sich nach gebrauch) abrufe
Blinzeln.start
aber irgendwie wird die Wartezeit also Wait_Count = 60 übersprungen und ich bekomme unmittelbar nachdem ich das lol-fenster wegklicke ein neues auf den Bildschirm... es soll aber immer erst nach 1 sekunde und nich unmittelbar danach ein neues erscheinen.
(ist nur ein Beispiel wie ich die Methode abrufen will also nicht denken was will der überhaupt mit dem lol-mist da^^)
Hmm... anders ausgedrückt ich brauche einen Befehl, der mein Script eine bestimmte Zeit warten lässt bevor es weiter arbeitet also sowie
Wait_Count = 60
nur halt ein funktionierender wenn ihr versteht was ich meine^^
-
"Wait count" ist eine Variable des Interpreters. Also kannst du entweder die Methode in den Interpreter machen, also
class Blinzeln
def blinzeln
print "lol"
b_restart
end
def b_restart
@wait_count = 60
blinzeln
end
end
oder du benutzt eine einfache for..in-Schleife in einer wait-methode, also etwa
def wait(frames)
for i in 0..frames do Graphics.update end
end
oder sowas. Allerdings ist das Problem bei beiden: Du hast in der Zeit wirklich einen Waitbefehl, es passiert also nichts.
-
hmm... also hab jetzt beides ausprobiert
das 1. ist in etwa das was ich schon hatte und funktioniert also nich (wenn ich das auch so schreibe mit b_restart und so dann gehts garnicht °.°)...
beim 2. versteh ich nich ganz was ich machen soll...
hab die Methode drunter eingefügt aber ich weiß nich wo ich die wartezeit hinschreiben soll
ich habs gerade so drin (klappt aber nich...):
class Blinzeln
def Blinzeln.start
print "lol"
Blinzeln.restart
end
def Blinzeln.restart
wait(60)
Blinzeln.start
end
def wait(frames)
for i in 0..frames do Graphics.update end
end
end
-
Neue Formulierung:
ich brauche einen Wait-Befehl für Scripts, welcher alles andere nicht beeinflusst!
(außer sich selbst)
z.B. will ich noch weiter auf der Map rumlaufen während das Script z.B. 60 Frames wartet bevor die nächste Funktion aktiv wird.
also wie in einem "Parallel Prozess - Common Event" ein Wait-Befehl der für eine bestimmte Zeit das Event selbst hindert etwas zu tun, aber den Spieler nicht beim laufen hindert...
und ich brauche es so, dass man die Wartezeit beliebig einstellen kann...^^
omg... hoffe jetz versteht mich jemand...
-
machs mit nem if befehl... baust ganz oben nen counter ein z.b @frame und dann unten im update
if @frame <= 60
@frame += 1
else
@frame = 0
blablabla
end
das updatet das wassu unter blablabla willst un nix anderes ;)
-
probier ich nachher mal aus und geb feedback... danke^^
-
hmm... hab nich so viel zeit in letzter zeit... zu viele Arbeiten -> Schule... :cry:
naja ich glaub ich peil selber nix mehr in meinem Script :haha: also denk ich stell ich die arbeiten daran mal ein... hab ein Script gemacht, indem ich die Uhrzeit per Variablen auf dem Bildschirm anzeigen lassen kann (beliebig einstellbare Spielgeschw.) und damit geb ich mich vorerst zufrieden^^
trotzdem danke an alle hier^^ wenn jemand lust hat ne Finale Lösung zu geben, kann gerne ein Blinzelscript schreiben und mir geben :haha_zwinker: