Ergebnis 1 bis 20 von 23

Thema: Button-Input-Funktions-Frage

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Gut, Fehlerquelle 1 ist ausgemerzt ... ich hatte tatsächlich nen kleinen Fehler beim kopieren gemacht (nein es war nicht [/code], aber irgendwie hab ich da ausversehen was mit reinkopiert ... )

    Nun klappt es ... theoretisch ... aber sobald ich ne Button-Input-Abfrage mache bricht das Ding jetzt zusammen mit folgender Fehlermeldung:


  2. #2
    Wie sieht denn deine Buttonabfrage aus?

  3. #3
    Code:
    Input.pressed?(Numberpad[0]) or Input.pressed?(Numberkeys[0])
    Erst die Button Input-Abfrage ... hab dann den Code in ner Fork eingegeben .... eigentlich sollte dann n text erscheinen wenn ich 0 drücke, stattdessen kommt immer diese Fehlermeldung ...

  4. #4
    mach die ganze variablendeklaration in ne funktion (def initialize) und initialisier die klasse mit WieAuchImmerDieKlasseJetztHeißt.new ...

    edit: glaub nämlich nicht, dass in Ruby variablen initialisiert werden können, wenns nicht in ner funktion stehen^^

  5. #5
    @ani-kun:
    Ähm ... bitte nochmal in TotalN00b-Verständlich bitte ...

  6. #6
    aaaaaaaalso xD

    du packst alles ab "Variable Setup" bis "module_functions" in eine funktion:

    def initialize
    ...
    end

    dort wo "..." steht packst du das zeug rein (erste zeile sollte "@keys = []" sein, letzte sollte "USED_KEYS = [Mouse_Left, Mouse_Right, Mouse_Middle]" sein)

    dann musst du die ganze klasse noch initialisieren, einfach in der Klasse Main vor "$scene = Scene_Title.new" ne zeile mit zb. "$input = Input.new"

    allerdings musst du dann deine button abfrage mit "$input.pressed?(etc)" machen ...

    edit: kann natürlich auch total falsch liegen, habs nicht getestet, aber das diktiert mir zumindest mein programmiererverständnis^^

  7. #7
    Das ist aber ein module und keine Klasse. Ich weiß nicht inwieweit es da Unterschiede bzgl. der Initialisierung gibt. Wobei ich mich gerade frage, was dieses "module_function" eigentlich ist.

  8. #8
    stimmt allerdings oO;;

    nichts desto trotz hat er ja ne fehlermeldung, dass das ding nicht initialisiert ist ... also muss es erst irgendwie initialisiert werden, und das wort module durch class zu ersetzen ist ja auch keine hexerei^^

  9. #9
    Ok, ani-kun hat Recht, dass da was mit der Initialisierung nicht stimmt. Wenn ich anstelle von Numberpad[0] den Zahlenwert (45) in die Abfrage packe, passiert der Fehler nicht.

    Edit:
    Ich hab mal ein wenig herumexperimentiert. Da ich mich mit Ruby kaum auskenne, kann ich nicht erklären wieso es geht, aber es sollte folgendermassen klappen:

    Du packst vor die Methode pressed? ein "self.". Dann rufst du die Abfrage z.B. so auf:

    Code:
    if Input.pressed?(Input::Numberkeys[0])
    Der Unterschied zu vorher ist das "Input::" vor der Konstante.

    Geändert von Kelven (12.04.2007 um 18:33 Uhr)

  10. #10
    Sry, hab mich oben verschrieben. Das vergess ich immer XD

    Ein Modul ist eine "Klasse" die nicht initialisiert werden kann. Im Prinzip nur ein Paket mit verschiedenen Methoden und Konstanten. Damit man auf eine Konstante eines Moduls zugreifen kann, schreibt man
    Modul::Konstante
    (bei einer Klasse genauso)

    module_function ist eine Methode der Klasse Module, welche alle Instanzmethoden eines Moduls in Modulmethoden umwandelt. Daher ist es nicht nötig vor eine Methode self. zu schreiben, das erledigt module_function schon von alleine (falsch ist es natürlich nicht. Ich persönlich finde die Methode auch doof und mache das lieber über self.methodenname XD)

    Modulmethoden und Klassenmethoden können ausgeführt werden, ohne das die Klasse (oder das Modul) eine Instanz erzeugen müssen. Typisches Beispiel die Klasse File.
    File.open ist eine Methode, die ausgeführt werden kann, ohne das eine Instanz der Klasse File erzeugt wird.

    Also kurz gesagt: Hör auf Kelvin XD Einfach ein Input:: davorschreiben.

Berechtigungen

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