Huh? Nein. Du sollst die Methode abbrechen solange die Wartezeit nicht um ist. Lies dir am besten mal den in meiner Signatur verlinkten Rubykurs durch.
Huh? Nein. Du sollst die Methode abbrechen solange die Wartezeit nicht um ist. Lies dir am besten mal den in meiner Signatur verlinkten Rubykurs durch.
Ich benutze mal diesen Thread für ein paar kleine Fragen. Gesetzt den Fall ich möchte anstelle des Standardsystems ein eigenes benutzen. Mir wurde empfohlen, die eigenen Variablen als Instanzvariablen einer der bestehenden globalen Variablen (z.B. Game_Party) einzutragen, da diese sowieso schon als Objekt abgespeichert werden und man dadurch Chaos beim Speichern und Laden vermeidet. D.h. also ich müsste nur den Konstruktor von Game_Party etwas umschreiben, oder?
Mal angenommen ich würde ein eigenes Array für das Inventar benutzen. Es liegt ja nahe neue Gegenstände per Push einzufügen (und mit Delete_at zu löschen). Stört das Ruby (in Hinblick auf das Speichern und Laden), wenn ein Objekt im Laufe des Spieles immer weiter anwächst?
Die Charaktere können natürlich auch nicht aus der Datenbank ausgelesen werden, es gibt also eine neue Klasse für sie. Die Gruppe soll aus 3 Charakteren + einem NPC bestehen. Positionen sind immer fest (sprich der erste Charakter ist immer der gleiche usw.) Wie könnte ich nun diese 4 Instanzen der neuen Klasse in Game_Party einbauen?
Nein. Es wird beim Speichern einfach der aktuelle Zustand des Objektes, in deinem Fall ein Array, in die Datei serialisiert. Wenn das Objekt nach dem Laden verändert wird, ist egal. Du musst dir aber im klaren sein, dass beim Deserialisieren eines Objektes (wie z.B. aus einer Datei) der Konstruktor nicht erneut aufgerufen wird.
Wenn du eigene Klassen für die Aktuere erstellst, dann kannst du doch diese einfach fest in das Array der Party speichern. Ich hab den RMXP jetzt gerade nicht bei der hand, also kann ich keine genauen namen Nennen. Aber so etwas in der Art wäre kein Problem
@party bezieht sich dabei auf die Membervariable von Game_Party welche das Array mit den Partymitgliedern beinhaltet. Und NeueActorKlasse ist dann halt einfach die neue Klasse, die du dafür erstellt hast. Stellt sich natürlich die Frage, warum du eine ganz neue Klasse dafür erstellst, und nicht einfach die bestehende erweiterst. Der << Operator für Arrays ist übrigens einfach nur ne andere Schreibweise für Array.push.
--
Was für Probleme könnten dadurch denn entstehen? Wenn ich mir so die Scene_Load-Methode anschaue, werden dort die Objekte ja auch nicht wieder neu initialisiert. Die Initialisierung findet ja nur in Scene_Title statt.Zitat
Ich brauche deren Variablen und Methoden eigentlich nicht. Außerdem möchte ich auf die Objekte ganz anders zugreifen, also die üblichen Makerfunktionen wie Gruppenmitglieder rein/raus usw. werde ich anders lösen. Ok, hauptsächlich weil meine Rubykenntnisse sich arg in Grenzen halten. Andererseits habe ich aber auch keine Lust alles mit den normalen Makervariablen zu lösen, weil es mich stört immer wieder überlegen zu müssen, ob Variable 132 nun die HP oder MP sind.Zitat
Das ist richtig. Beim Deserialisieren (oder unmarshaling, wie Ruby es nennt), werden lediglich die Daten aus einer Datei gelesen, und wieder in ein Objekt gesteckt. In der Regel hat es keinerlei auswirkungen darauf, ob der Konstruktor aufgerufen wird oder nicht, denn die Inhalte stehen ja nun drin, wie sie waren, als sie in die Datei serialisiert wurden. Solltest du jedoch irgendwelche Funktionalität im Konstruktor haben, die über das pure Initialisieren der Werte hinausgeht, und die immer ausgeführt werden soll, wenn ein Objekt erstellt wird, so wird sie beim deserialisieren nicht ausgeführt, da der Konstruktor ja nicht aufgerufen wird. Das stört in den meisten Fällen nicht wirklich, aber ich dachte nur, ich erwähne es einmal.
--
die werden doch vom Chipset aus ausgewählt,oder etwa nicht?
in der database musste unter "tilesets" irgendwo die panoramas
anzeigen lassen.
panormas kann man entweder in der database (Chipsets) oder mit einem Event anpassen!
Hey Leute!
Ich habe eine Frage, die nur indirekt mit dem RMXP zu tun hat.
Also ich möchte Ruby lernen(keine Sorge, habe schon Programmiererfahrungen in anderen Sprachen). Jetzt stellt sich mir aber die Frage, welchen Compiler ich anwenden sollte. Hat da jemand einen guten Ruby-Compiler? Entweder ich bin zu blöd oder es gibt keine Compiler, obwohl ich das letztere eigentlich ausschließen kann.
MFG Majin_Clodan
ich brauch für ruby keinen compiler oO
Ruby ist eine interpretierte Sprache. d.h. du hast ein Programm (den Interpreter) der den Source-Code einliest und ausführt. Im Prinzip gibt es derweil nur drei ernstzunehmende Rubyinterpreter: MRI, YARV und JRuby. MRI ist der Interpreter für die Rubyversionen bis 1.8 und damit auch der Interpreter den der Maker nutzt. YARV ist deutlich schneller und arbeitet mit der 1.9er Version. Die ist dieses Jahr erst rausgekommen, es wird also schwer sein schon Tutorials und Libraries zu finden die sich mit 1.9 befassen. JRuby führt Ruby über die Java-VM aus (hat den Vorteil das man von Ruby aus auf Javaklassen zugreifen kann). Die restlichen Interpreter (Rubinius, IronRuby, etc.) sind afair noch in der Aufbauphase.
Wenn du Ruby speziell für den Maker lernen willst, würde ich dir MRI raten. Dafür gibts auch 'ne OneClickInstaller-Version, mit der du ihn problemlos unter Windows installieren kannst. Ruby 1.86 MRI für Windows
Nach der Installation kannst du über die Konsole (Pfadvariablen dürften schon gesetzt sein) mit
ein Programm ausführen.
Desweiteren gibt es den Befehl
welcher eine Rubyshell öffnet, in der du interaktiv Rubycode schreiben und ausführen kannst.
Ebenfalls praktisch ist das ri, mit dem du Informationen über Rubyklassen und Methoden bekommst:
Liefert dir z.B. eine Erklärung über die Array#push Methode.
kann man damit auch richtige windowsapplikationen schreiben?
also nicht nur diese dos-programme.
Wie jede Programmiersprache schreibt Ruby einfach nur in den Standard-Output. Das ist eben die Konsole (bzw. das Dos-Fenster).
Du kannst natürlich auch Fenster mit Inhalt erzeugen. Dafür musst du dann entsprechende Libraries einbinden.
Eine Library, welche verdammt einfach und schnell zu erlernen ist, und auch grafisch sehr ansprechend aussieht, ist Shoes. Außerdem erzeugt dir die zugehörige Applikation auf Wunsch gleich eine fertige exe-Datei. Einzige Problem bei Shoes: Es ist einfach, bietet aber auch nur wenige und grundlegende Funktion.
Wenn dir das nicht ausreicht, stehen dir afair mit dem OneClickInstaller noch FoXRuby und (mit zusätzlicher Installation der Libs) auch die Anbindungen zu den vielen anderen GUI-Libs wie GTK, qT etc. zur Verfügung.
Wenns dir mehr um Spiele geht, reicht auch eine Lib wie SDL (mit RubyGame oder RubySDL) aus.
Hey.
rubygame hab ich nach dieser Anleitung installiert. nur der letzte schritt, wo ich require `rubygame`
in die irb konsole eingeben soll, klappt nicht.
ich hab mir jetzt mal SDL geholt. das ist ein gem, sowas wie ne lib(?),
nur wie greife ich jetzt darauf zu?
Unter Windows ist das alles immer recht umständlich. Du musst erst SDL installieren (http://www.libsdl.org/download-1.2.php), außerdem für Rubygame noch die DLLs in deinen Scriptordner reinkopieren.
Geschwindigkeitsmäßig dürfte Rubygames aber noch langsamer als die RGSS sein =/
Eine Ruby-Library die 3D-Beschleunigung nutzt kenn ich leider nicht =(
Geändert von -KD- (07.02.2009 um 16:23 Uhr)
Hab mal eine kleine Frage. Battle Animations übernehmen anscheinend die Transparenz vom Event auf dem sie dargestellt werden. Ich möchte aber, dass die Einstellungen der BA benutzt werden. Wo muss ich was im Ruby-Code ändern?
In RPG::Sprite.