Seite 14 von 17 ErsteErste ... 41011121314151617 LetzteLetzte
Ergebnis 261 bis 280 von 323

Thema: Kleine RmXP FAQ

  1. #261
    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.

  2. #262
    Zitat Zitat von -KD- Beitrag anzeigen
    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.
    Naja, habe für mein Problem jetzt eine andere Lösung gefunden. Deinen Kurs kenne ich bereits, ist sehr hilfreich. Danke jedenfalls. Mal was anderes: gibts nen Musik-FadeIn-Befehl? Habe versucht, den entsprechend dem FadeOut anzupassen, hat nicht geklappt.

  3. #263
    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?

  4. #264
    Zitat Zitat von Kelven Beitrag anzeigen
    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?
    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.

    Zitat Zitat von Kelven Beitrag anzeigen
    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?
    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

    Code:
    @party << NeueActorKlasse.new
    @party << NeueActorKlasse.new
    @party << NeueActorKlasse.new
    @party << NeueActorKlasse.new
    @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.

  5. #265
    Zitat Zitat
    Du musst dir aber im klaren sein, dass beim Deserialisieren eines Objektes (wie z.B. aus einer Datei) der Konstruktor nicht erneut aufgerufen wird.
    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 Zitat
    Stellt sich natürlich die Frage, warum du eine ganz neue Klasse dafür erstellst, und nicht einfach die bestehende erweiterst.
    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.

  6. #266
    Zitat Zitat von Kelven Beitrag anzeigen
    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.
    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.

  7. #267
    Und wie kann man Im XP Panoramas nutzen oO?

  8. #268

    Users Awaiting Email Confirmation

    die werden doch vom Chipset aus ausgewählt,oder etwa nicht?

  9. #269
    in der database musste unter "tilesets" irgendwo die panoramas
    anzeigen lassen.

  10. #270
    panormas kann man entweder in der database (Chipsets) oder mit einem Event anpassen!

  11. #271
    Kann man die broken Links des FAQs ersetzen?^^

  12. #272
    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

  13. #273
    ich brauch für ruby keinen compiler oO

  14. #274
    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
    Code:
    ruby meine_datei.rb
    ein Programm ausführen.
    Desweiteren gibt es den Befehl
    Code:
    irb
    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:
    Code:
    ri Array#push
    Liefert dir z.B. eine Erklärung über die Array#push Methode.

  15. #275
    kann man damit auch richtige windowsapplikationen schreiben?
    also nicht nur diese dos-programme.

  16. #276
    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.

  17. #277
    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?

  18. #278
    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)

  19. #279
    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?

  20. #280
    In RPG::Sprite.
    Code:
    class RPG::Sprite
      def animation_set_sprites(sprites, cell_data, position)
          for i in 0..15
            sprite = sprites[i]
            pattern = cell_data[i, 0]
            if sprite == nil or pattern == nil or pattern == -1
              sprite.visible = false if sprite != nil
              next
            end
            sprite.visible = true
            sprite.src_rect.set(pattern % 5 * 192, pattern / 5 * 192, 192, 192)
            if position == 3
              if self.viewport != nil
                sprite.x = self.viewport.rect.width / 2
                sprite.y = self.viewport.rect.height - 160
              else
                sprite.x = 320
                sprite.y = 240
              end
            else
              sprite.x = self.x - self.ox + self.src_rect.width / 2
              sprite.y = self.y - self.oy + self.src_rect.height / 2
              sprite.y -= self.src_rect.height / 4 if position == 0
              sprite.y += self.src_rect.height / 4 if position == 2
            end
            sprite.x += cell_data[i, 1]
            sprite.y += cell_data[i, 2]
            sprite.z = 2000
            sprite.ox = 96
            sprite.oy = 96
            sprite.zoom_x = cell_data[i, 3] / 100.0
            sprite.zoom_y = cell_data[i, 3] / 100.0
            sprite.angle = cell_data[i, 4]
            sprite.mirror = (cell_data[i, 5] == 1)
            # sprite.opacity = cell_data[i, 6] * self.opacity / 255.0 ÄNDERUNG
            sprite.opacity = cell_data[i, 6] # <--- KORREKTUR
            sprite.blend_type = cell_data[i, 7]
          end
        end
    end

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •