Ergebnis 1 bis 13 von 13

Thema: Noch ne Frage^^ Font wechsel?

  1. #1

    Noch ne Frage^^ Font wechsel?

    Îch hätte da noch ne Frage.
    Wie wechselt man die Typo, sprich Schriftart?

    In vielen XP-Spielen wird die Schriftart ausgetauscht, ich würd dies auch gern tun, leider weiß ich nicht wie man die bewerkstelligen muss, durch ein Skript oder wie?

  2. #2
    Es gibt eine Font-Klasse im XP.
    Jede Instanz der Bitmap-Klasse kann eine eigene Instanz der Font-Klasse referenzieren welche dann die Schriftart, Größe, Farbe, und weitere Informationen zur Schrift beeinflusst welche mit diesem Bitmap gezeichnet wird.
    Man kann ebenfalls die Standard-Werte der Font-Klasse ändern, diese Standard-Werte werden von jedem Bitmap benutzt welches kein spezielles Font zugeordnet bekommt.

    Die Standard-Werte der Font-Klasse kann man zu jedem Zeitpunkt wie folgt ändern:
    Code:
    Font.default_name = "some string"
    Font.default_size = some_int
    Font.default_bold = some_boolean
    Font.default_italic = some_boolean
    Font.default_color = some_color_object_instance
    Natürlich gelten diese Änderungen nur für jeglichen Text, welcher geschrieben wird nachdem die Änderungen durchgeführt wurden.

  3. #3
    Bei mir gibts keine Klasse mit Fonts :/
    Könntest du mir vllt zeigen wo das genau liegt?
    Mit der SuFu des Makers find ich die Standard-Werte auch nciht :/


    Allerdings konnte ich im Timer die Schrift ändern^^

    Jetzt mal ncoh ne frage, wie macht man sich eine Box um den Timer?

  4. #4
    Du siehst die Klasse nicht im Script-Editor weil es eine Klasse des RGSS ist, also der Bibliothek dahinter.
    Du kannst dir die Dokumentation der Klasse in der Hilfe-Datei durchlesen.

    Und um dem Timer ein Window zu geben müsstest du die Klasse "Sprite_Timer" verändern.

    Das ist zwar nicht getestet, aber falls du die Standard-Timer-Sprite-Klasse umschreiben würdest, dass sie ungefähr so wie folgt aussieht sollte es prinzipiell funktionieren:
    Code:
    class Sprite_Timer < Window
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize
        super
        self.width = 88 + 32
        self.height = 48 + 32
        self.x = 640 - self.width
        self.y = 0
        self.z = 500
        self.contents = Bitmap.new(self.width - 32, self.height - 32)
        self.contents.font.name = "Arial"
        self.contents.font.size = 32
        self.update
      end
      #--------------------------------------------------------------------------
      # * Dispose
      #--------------------------------------------------------------------------
      def dispose
        if self.contents != nil
          self.contents.dispose
        end
        super
      end
      #--------------------------------------------------------------------------
      # * Frame Update
      #--------------------------------------------------------------------------
      def update
        super
        # Set timer to visible if working
        self.visible = $game_system.timer_working
        # If timer needs to be redrawn
        if $game_system.timer / Graphics.frame_rate != @total_sec
          # Clear window contents
          self.contents.clear
          # Calculate total number of seconds
          @total_sec = $game_system.timer / Graphics.frame_rate
          # Make a string for displaying the timer
          min = @total_sec / 60
          sec = @total_sec % 60
          text = sprintf("%02d:%02d", min, sec)
          # Draw timer
          self.contents.font.color.set(255, 255, 255)
          self.contents.draw_text(self.contents.rect, text, 1)
        end
      end
    end
    Es könnte sein, dass noch vereinzelnte Probleme auftauchen, aber so ungefähr sollte das Endergebnis aussehen.

  5. #5
    Also muss ich die Font in der Hilfe-Datei ändern? oO

    Ich blicke nicht mehr durch xD

  6. #6
    Du musst die Klasse überhaupt nicht ändern. Das kannst du auch garnicht.
    Du musst lediglich die oben von mir genannten Funktionen mit den entsprechenden Parametern aufrufen.

    Zum Beispiel:
    Code:
    Font.default_name = "Arial"
    würde die standard Schriftart von allen Bitmaps, dessen Font nicht weiter spezifiziert worden ist, auf Arial setzen.

  7. #7
    JO, hab ich schon geändert^^
    Nur konnte ich die Schirft-fareb nciht ändern :/


    Die Box wird nicht angezeigt :/
    Ich spiel mal etwas damit rum, vllt klappts ja...

  8. #8
    Die Schriftfarbe änderst du über den Befehl:
    Code:
    Font.default_color = some_color_object
    also, zum Beispiel, um die Schrift auf ein starkes Rot zu setzen:
    Code:
    Font.default_color = Color.new(255, 0, 0, 255)
    Außerdem, von was für einer "Box" redest du?

  9. #9
    Achso, man muss noch ein Color.new vor den Zahlen setzen xD
    Hab da normal_color hingeschrieben und dann das standard für Weiß xD

    Um den Timer.
    Also so wie bei normalen Texten, nur das die auch bei dem TImer ist.
    EIne weiße Schrift auf Schnee-Landschaft sieht man nicht :/

  10. #10
    Natürlich wird sie nicht angezeigt, ich habe nämlich bei meinem Code-Beispiel eine Zeile vergessen.
    Du musst dem Fenster auch sagen, welchen Window-Skin es verwenden soll.
    Daher musst du außerdem noch die folgende Zeile in den Code der "initialization"-Funktion einführen:
    Code:
    self.windowskin = RPG::Cache.windowskin($game_system.windowskin_name)

  11. #11
    Hab ausprobiert, da kommt dann ne Fehlermeldung :/

    Der Name der Windowskin ist Windowskin...
    Hab ich auch eingegeben, funzt aber nicht :/

    Muss das an eine bestimmter Stelle?

  12. #12
    Was für eine Fehlermeldung, bitte den genauen Wortlaut wiederholen.
    Am besten du zeigst auch das Script welches den Fehler hervorruft.

  13. #13
    Ach, ops xD
    Musste man bei "name" den Namen der Windowskin hinschreiben?

    Weil als der Name dort stand, kam ein Fehler.
    Jetzt hab ich den nochmal ohne, also wo nur name steht versucht, jetzt gehts x3

    Danke

Berechtigungen

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