Zitat Zitat
But jou, keine schlechte Lösung - kann im Gegensatz zur Abfrage der PNG größe sogar funktionieren. Gut, wer machts ? :>
Mal sehen...
Um das ganze so hinzubekommen müssen wir wie gehabt die Klassen Game_Character und Sprite_Character verändern. Fangen wir bei Game_Character an:
Als erstes brauchen wir hier eine Methode die den Namen gegen ein Muster stellt und uns die Framezahl ausgibt:
Code:
def getFrames
  self.character_name.sub(/f\[(\d+)\]/) { @frames = $1.to_i }
  @frames = 4 if @frames.nil?
  return @frames
end
ansonsten müssen wir hier wie gehabt die Framezahl anheben und die Geschwindigkeit manipulieren. Ersteres geschieht in Zeile 31, welche wir duch folgenden Code ersetzen:
Code:
@pattern = (@pattern + 1) % getFrames
Dann noch die Geschwindigkeit anpassen, in Zeile 105:
Code:
@anime_count += 1.5*(getFrames/4)
Die nächsten Änderungen kommen dann in Sprite_Character (Zeile 47-64):
Code:
        self.bitmap = RPG::Cache.character(@character.character_name,
          @character.character_hue)
        @frames = @character.getFrames
        @cw = bitmap.width / 4
        @ch = bitmap.height / 4
        self.ox = @cw / (@frames/2)
        self.oy = @ch
      end
    end
    # 可視状態を設定
    self.visible = (not @character.transparent)
    # グラフィックがキャラクターの場合
    if @tile_id == 0
      # 転送元の矩形を設定
      sx = @character.pattern * @cw
      sy = (@character.direction - 2) / 2 * @ch
      self.src_rect.set(sx / (@frames/4), sy, @cw / (@frames/4), @ch)
    end
...an für sich war's das schon.
Das Muster, das in den Dateinamen stehen muss ist übrigens f[x] (wobei x die framezahl sein muss). Steht kein solches Muster werden 4 frames als Standard angenommen. (Das hat den Sinn, dass man nach wie vor die Rtp sprites benutzen kann...)