Ergebnis 1 bis 11 von 11

Thema: Simple Einbindung von Icons

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Afaik musst du erst ein Sprite erstellen und diesem dein Bitmap zuweisen.
    (Bin allerdings selbst ziemlich unerfahren in Ruby ^^)
    In diesem Rubykurs wird das auch relativ gut erklärt.


    Code:
    mein_sprite = Sprite.new
    mein_sprite.bitmap = mein_bitmap
    mein_sprite.x = 100 
    mein_sprite.y = 100

  2. #2
    Das kommt vor allem auch drauf an, wo du es anzeigen willst. Es gibt im Prinzip zwei Möglichkeiten:
    - du zeigst es, wie Shimassy gesagt hat, als Sprite an
    - du kopierst es auf ein anderes Bitmap, welches bereits angezeigt wird

    Letzteres ist gegebenfalls effizienter. Wenn du ein Menü mit sehr vielen Icons hast, ist es für die Performance nicht gut wenn du jedes Item als Sprite anzeigst. Du legst stattdessen ein einziges großes Bitmap an und kopierst alle Items in dieses Bitmap (das geht mit dem blt Befehl. grosses_bitmap.blt(x, y, kleines_bitmap, kleines_bitmap.rect).
    Dieses große Bitmap kannst du dann anzeigen (entweder als Sprite, oder in einem Menü als Window, in dem du schreibst mein_window.contents = grosses_bitmap).

  3. #3
    Das hat jetzt so prima geklappt.
    Ich versuche derzeit, eine Variable aus 10 anderen Variablen zusammenzusetzen, in Form von einer Formel. Da ich mit genauen Werten und Nachkommastellen rechnen möchte, was mit Ruby hoffentlich möglich ist, möchte ich wissen, wie ich statt Eventcode diese Berechnung skripten kann.

  4. #4
    Du willst 'ne Formel mit Makervariablen machen?

    $game_variables[5] # Zugriff auf die Makervariable 0005
    $game_variables[29] = 10 # Setzt Makervariable 0029 auf den Wert 10

    Damit du mit Kommastellen rechnen kannst, musst du die Variablen in Floats umwandeln. Das geht mit der Methode to_f. Um am Ende wieder eine Ganzzahl zu erhalten, verwendest du die Methode round.

    Code:
    a = $game_variables[13].to_f
    b = $game_variables[20].to_f
    # Pythagoras:
    c = (a + b)**0.5
    # Zurückrechnen in Ganzzahl
    $game_variables[1] = c.round

  5. #5
    Kann man das in mehrere Calls fassen oder muss ich dazu ein Skript erstellen? Beim Skript, wie könnte ich das definieren, praktisch als Befehl, der ständig aufgerufen wird, wenn ich will? Im Callskript gibt's jedenfalls NameErrors (ich denke mal, da fehlen noch irgendwelche Definitionen).

  6. #6
    in mehrere Call-Script verteilt darfst du das nicht schreiben. Entweder in ein Call-Script, oder du schreibst es in den Scripteditor. Letzteres ist vermutlich für längere Scripte die bessere Variante.

    Da hast du wiederum zwei Möglichkeiten. Einmal über Module:
    Code:
    module Skripte
      def self.pythagoras
        a = $game_variables[13].to_f
        b = $game_variables[20].to_f
        # Pythagoras:
        c = (a + b)**0.5
        # Zurückrechnen in Ganzzahl
        $game_variables[1] = c.round
      end
    end
    Wichtig ist nur das self. vor dem Methodennamen. Nun kannst du im Call-Script mit Skripte.pythagoras dieses Script aufrufen.

    Andere Möglichkeit:
    Code:
    class Interpreter
      def pythagoras
        #...
      end
    end
    Jetzt brauchst du im Call-Script einfach nur pythagoras() hinschreiben, um das Script auszuführen.

    NameError heißt btw. das du auf eine lokale Variable, Konstante oder Klassenvariable zugreifst, die noch nicht definiert wurde. Ich nehme mal an du hast eine lokale Variable, z.B. a = $game_variables[13].to_f im ersten call-script definiert und wolltest im zweiten call-script darauf zugreifen. Das funktioniert allerdings nicht.

Berechtigungen

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