Ergebnis 1 bis 6 von 6

Thema: RMVX - Playerinteraktionen Blockieren

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Du könntest das Input-Modul direkt blockieren.
    Code:
    class << Input
      attr_acessor :blocked
      [:trigger?, :press?, :repeat?].each do |methode|
        # benenne die ursprüngliche Methode um
        new_name = :"#{methode}_unblocked"
        alias_method new_name, methode
        # definiere neue Methode mit altem Namen, die blocked abfragt
        define_method(methode) {|key|
          if blocked then false else send(new_name, key) end
        }
      end
      [:dir4, :dir8].each do |methode|
        new_name = :"#{methode}_unblocked"
        alias_method new_name, methode
        define_method(methode) {
          if blocked then 0 else send(new_name) end
        }
      end
    end
    Der Code ist ungetestet, aber theoretisch müsstest du damit per
    Code:
    Input.blocked = true
    alle Standardeingaben blockieren können.

  2. #2
    Ahh coole Sache, danke, probier ich nachher direkt aus.

    Off-Topic:
    Es ist also möglich auch vorher definierte Klassen zu überschreiben?!
    Wird dann die gesamte Klasse überschrieben oder gibt es auch die Möglichkeit nur gewisse Funktionen der klassen zu überschreiben?

    EDIT: Ok, hat sich erledigt, ich hab mir den Ruby/RGSS-Kurs von -KD- mal vorgenommen, da steht alles schön erklärt Danke nochmal.

    EDIT EDIT: Super, hat funktioniert, ich musste nur nach dem Input.blocked = true noch ein Input.update aufufen

    Geändert von Towky (28.07.2012 um 11:46 Uhr)

Berechtigungen

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