Beim 2K benutze ich dieses System schon seit Zwielicht und dort läuft alles wie geschmiert.
Mich würde mal interessieren, wie das Wait-Kommando intern in Ruby ausgeführt wird, vor allem im Hinblick darauf, wie man das da simuliert. Reicht da ein sleep?
Im Interpreter steht bei Wait ja folgendes:
Vielleicht bin ich zu doof das zu finden, aber ich sehe nirgendwo dieses wait_count als Variable.
In der Interpreter#update Methode wird pro frame eine Schleife ausgeführt die zuerst einmal prüft ob das Event auf irgendetwas wartet, falls nicht wird das nächste Kommando ausgeführt und anschließend geschaut ob das Event dabei abgebrochen wurde.
Die Schleife wird dann so lange wiederholt bis irgendeine dieser Warte/Abbruch Bedinung erfüllt wurde.
Der Code der sich mit dem Wait befasst sieht so aus:
Und findet sich ab Zeile 167. Auch gut zu wissen ist, dass die Wartezeiten die du im Editor eingibst eigentlich *2 genommen werden, wenn du Wartezeiten dierekt in ruby implementierst musst du berücksichtigen, dass ein Frame in Wirklichkeit 1/40 Sekunde entspricht und nicht 1/20 wie im Editor.
Wartezeiten an für sich lassen sich einfach einbauen, die Methode Graphics.update welche man jeden Frame aufrufen sollte wartet nämlich gleichzeitig auf den nächsten Frame.
Sleep ist dabei keine gute Lösung, immerhin hälst du damit das gesamte geschehen an, was in einem Spiel sicherlich nicht gut kommt.
--Plots in a Nutshell:
Someone the reader likes overcomes increasingly difficult obstacles to reach an important goal. ~ Author unknown
Jetzt hast du aber nur nicht ganz genau gesagt, wie man ein Wait einbauen kann. Soll man dann einfach Graphics.Update aufrufen?
Du sollst eine Methode einbauen die einmal pro frame aufgerufen wird und die einen Zähler hat, welcher wie im Interpreter aufgebaut ist. Sofern der Zähler noch läuft gibt's ein return und vom Zähler wird 1 abgezogen, falls nicht geht es weiter mit dem geschehen.
--Plots in a Nutshell:
Someone the reader likes overcomes increasingly difficult obstacles to reach an important goal. ~ Author unknown
Ne kleine Frage am Rande, gibt es eine Möglichkeit, einen Wait-Befehl zu erstellen, notfalls mit RGSS, der weniger als ein Frame dauert? Weil Animationen mit einem Wait von einem Frame sehen übelst aus. Ich wollte wissen, ob das vielleicht flüssiger geht. Vielen Dank.
Wenn du im Interpreter einen Frame wartest, wartet er intern gleich zwei davon - warum auch immer. Die einfachste Möglichkeit eine richtige Frame Wartezeit einzufügen ist wohl über call script:
würde 3 frames warten
--Plots in a Nutshell:
Someone the reader likes overcomes increasingly difficult obstacles to reach an important goal. ~ Author unknown
Tileset für XP: 256 * beliebig Pixel, durcheinander einfügen erlaubt.
RGSS: Ruby Game Scripting Sytsem (wenn mich nicht alles täuscht).
Theoretisch könnte man dann einfach ALLES oder jedenfalls ziemlich viele Sachen in ein einziges Tile reinpacken oder?
Bis auf die Tatsache dass dann vllcht dieses einzige Tile etwas zu viel KB hätte oder irr ich mich hier?
Könntest du theoretisch machen, ist aber nicht unbedingt sinnvoll.
Denn in der Regel braucht man nicht immer alles. (wozu zB. ein Klavier in einem Wald)
Ich hab sogar mal ein Spiel gespielt, wo alles in einem Chipset war, das brauchte dann aber im Maker auch immer etwas bis es geladen war.
THX für die Hilfe aber noch was....
Kann ich denn auch das Autotile-Limit für ein Tile in der Database erhöhen?
EDIT: sry für die Frage mit dem Chipset!" Habs grade auf Seite 1 gelesen X.X
Geändert von Housemaster (06.06.2006 um 16:22 Uhr)
Nein, pro Tileset sind wohl nur 7 Autotiles möglich. Aber du kannst ja das Tileset mehrfach kopieren in der Database und einfach die zugewiesenen Autotiles ändern.
Ich möchte, dass das Spiel ein Ereignis aufruft,
wenn die BGM Musik einmal durchgespielt ist (um ein neues Stück auszusuchen).
Kann diese Bedingung nicht finden!
--Ich widerspreche der Nutzung oder Übermittlung meiner Daten für Werbezwecke oder für die Markt- und Meinungsforschung (§ 28 Absatz 3 und 4 Bundesdatenschutzgesetz).
Geändert von Bluescreen (24.06.2006 um 21:01 Uhr)
Ich hab jetzt auch mal eine kleine Frage zum RMXP.
Da ich mir den Maker vor wenigen Tagen ebenfalls zu gelegt habe, und mich auch schon mit Ruby usw. beschäftigt habe, stellt sich bei mir nun die Frage, wie ich es schaffe, ein Intro, basierend auf Maps, vor dem eigentlichen Titelscreen zu zeigen.
Ich habe auch schon diverse Foren und Themen durchsucht, aber nichts gefunden, dass mir weiterhelfen kann.
Hat irgendjemand ein Script oder wenigstens eine Idee wie ich so etwas umsetzen könnte.
Vielen Dank im Vorraus.
LG Henry
ich würd bei sowas empfehlen ruby-code einzubinden und berechnungen in threads ausführen lassen, das entlastet ungemein^^Zitat von Kelven
etwa so:
innerhalb des loops kann man natürlich auch mit einer while-schleife das ganze an bestimmte bedingungen knüpfen ... und irgendwann sollte man den thread auch mittels
thread.kill
auch wieder von seiner arbeit erlösen, sonst rennt der ewig weiter^^
@henry, für sowas müsstest du in Scene_Title das titelmenü überspringen bzw. davor ins spiel einsteigen ... dafür gibts auf dubalex schon einige scripts, musst bissl suchen oder selber machen wennst in ruby schon halbwegs fit bist^^
grundsätzlich zur verwendung von ruby:
kinder - trial and error, so lernt man am besten eine programmiersprache, machts einfach wie ihr euch denkts und probiert solange, bis es klappt xD