Touch Input Fehler?

  • Servus einmal,

    ich hab ein Problemchen, welches ich nicht raffe (oder wie ich dies "ausbessern" kann) :

    Der Codeabschnitt, der Probleme macht sieht wie folgt aus:

    Code
    1. Scene_ADVENTURE_MESSAGE.prototype.create = function() {
    2. Scene_MenuBase.prototype.create.call(this);
    3. this._messageWindow = new Window_ADVENTURE_MESSAGE();
    4. this._messageWindow.setHandler('cancel', this.back.bind(this));
    5. this._messageWindow.setHandler('ok', this.weiter.bind(this));
    6. this.addWindow(this._messageWindow);
    7. };


    Per Controller geht es, per Tastatur auch aber per Maus geht nur der 'cancel' Befehl....


    Was ich bei meiner Suche raus gefunden habe:
    TouchInput._triggered würde für Bestätigen stehen (rpg_core)

    TouchInput._cancelled würde für Abbrechen stehen (rpg_core)


    Was mich dazu noch verwirrt. ich habe keinen Prototypen für den setHandler unter den Szenen gefunden.. (Habe gehofft das ich dort eine Antwort finde aber irgendwie gibt es dies nicht - woher wird dies dann vererbt? wtf?)

  • Was machen denn

    Scene_ADVENTURE_MESSAGE.prototype.back

    und

    Scene_ADVENTURE_MESSAGE.prototype.weiter ?

  • Was machen denn

    Scene_ADVENTURE_MESSAGE.prototype.back

    und

    Scene_ADVENTURE_MESSAGE.prototype.weiter ?

    Das ist irrelevant, weil die Funktionen ja funktionieren, wenn die Tasteneingabe erfolgt.



    Was mich dazu noch verwirrt. ich habe keinen Prototypen für den setHandler unter den Szenen gefunden.. (Habe gehofft das ich dort eine Antwort finde aber irgendwie gibt es dies nicht - woher wird dies dann vererbt? wtf?)

    Die setHandler-Funktion ist eine Funktion des Windows und wird von Windows_Selectable vererbt. Dein Window_ADVENTURE_MESSAGE sollte also auch vom Window_Selectable oder einer Kindklasse davon erben. Ich denke aber, dass es das tut, weil du sonst die Funktion nicht aufrufen könntest.


    Um das Problem zu finden, musst du schauen, ob du bei deinem neuen Window evtl eine Funktion überschrieben hast, die bei einem TouchInput getriggert wird. Diese sind:

    1. Window_Selectable.prototype.processTouch
    2. Window_Selectable.prototype.onTouch
    3. Window_Selectable.prototype.processOk
    4. Window_Selectable.prototype.callOkHandler
    5. Window_Selectable.prototype.callHandler

    Falls dein Window von einer Kindklasse erbt, musst du schauen, ob dort evtl eine der Funktionen überschrieben wird. Außerdem solltest du die verwendeten Plugins danach absuchen.

  • Scene_ADVENTURE_MESSAGE.prototype.back

    und

    Scene_ADVENTURE_MESSAGE.prototype.weiter ?

    Lassen im Text-Scroller den nächsten Abschnitt laden (weiter) oder zurück zum Menü kommen (back)
    Weil es per Tastatur und Controller funzt habe ich nicht den kompletten Code kopiert ^^



    Um das Problem zu finden, musst du schauen, ob du bei deinem neuen Window evtl eine Funktion überschrieben hast, die bei einem TouchInput getriggert wird. Diese sind:

    Irgendwie wird es nirgends überschrieben =O


    Ich kann mir vorstellen, dass ich irgendwo eine Kleinigkeit vergesse - mal der gesamte Code:


    Achja, danke euch :-)

  • Ich kann jetzt auf den ersten Blick nichts erkennen, was einen Fehler verursachen sollte. Probiere deinen Code mal in einem neuen Projekt, ohne andere Plugins. Wenn das funktioniert, dann musst du dich auf die Suche nach dem problematischen Plugin begeben.

  • Ich hab eine Lösung gefunden, zwar nicht die eleganteste aber es funktioniert :D


    Code: Das hinzufügen
    1. Scene_ADVENTURE_MESSAGE.prototype.update = function() {
    2. Scene_Base.prototype.update.call(this);
    3. if (TouchInput.isReleased()) {SoundManager.playOk(); this.weiter()}
    4. };