Lieber Besucher, herzlich willkommen bei: RPG Studio - Make your World real. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

OverKing53

Ankömmling

  • »OverKing53« ist der Autor dieses Themas

Motto: Lass dir nie von Jemandem einreden, dass du etwas nicht kannst. Denn wenn jemand etwas nicht kann, dann versucht er dir einzureden, dass du es auch nicht kannst. Und wenn du etwas willst, dann mach es einfach.

  • Nachricht senden

1

Samstag, 26. Dezember 2015, 23:29

Paperscript im Maker verwenden?

Hallo Leute,

ich wollte das Paperscript im RPG Maker MV nutzen, aber das scheint irgendwie nicht zu funktionieren.

Wer nicht weiß, was Paperscript ist:
Das erlaubt u.a. das Überladen der arithmetischen Operatoren.
(Mit Ruby geht das ja ohne weiteres)

Ich habe hier mein Vorhaben beispielhaft getestet und es funktioniert so wie es sollte.

Ich hab mir hier Paperscript heruntergeladen und die entsprechende .js-Datei in den Plugins-Ordner vom MV gezogen.
Anschließend hab ich im Plugin Manager Paper.js an erster Stelle geladen und auf "ON" gesetzt.

Wenn ich es dann aber wie im ersten Beispiel oben teste, kommt nicht das gewünschte Ergebnis :/


Weiß irgendjemand woran das liegt und wie man das beheben kann?

Zum besseren Verständnis wie das Überladen in Paperscript funktioniert ohne jetzt den ganzen Code durchgehen zu müssen^^:
Paperscript: Operator-Overloading

Danke im Voraus!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »OverKing53« (26. Dezember 2015, 23:29)


2

Sonntag, 3. Januar 2016, 00:09

Paperscript tut doch soweit ich sehe nur das folgende: Sobald die HTML Seite geladen ist[1], werden alle Scripttags im Dokument durchsucht, ob sie als Scripttyp PaperScript haben[2] und in dem Falle geparsed. Nur funktioniert das so mit der gegebenen Umgebung nicht. Du könntest weiter experimentieren - das Problem ist, dass die PaperScript-Umgebung niemals deine Scripte parsed und ersetzt, da diese direkt als JavaScript ausgeführt werden. Hast Du mit PaperScript selber denn schon Erfahrung? Es gibt die Möglichkeit, PaperScript direkt in reinem JS zu verwenden[3], allerdings ist das dafür da, um die Zeichenroutinen aus der Umgebung zu verwenden und erlaubt dir nicht den Syntaxzucker (pseudo Überladen der Operatoren).
Warum das in Ruby geht ist einfach: In Ruby sind Plus und Minus einfache Methoden und können genauso überschrieben werden.

Du kannst ja mal den ECMA Script Standard durchblättern, was er über Operatoren sagt[4], aber ich glaube Du kommst da nicht weiter. Es gäbe noch die Möglichkeit nicht die Operatoren anzufassen, sondern die valueOf Methode - das ist ein weiterer Ansatz.[5] Aber ich verspreche mir da nicht so viel von.

Darf man fragen, was Du eigentlich damit vorhast?

[1] Siehe paper_full.js Zeile 13675 und folgende
[2] http://paperjs.org/tutorials/getting-started/working-with-paper-js/#script-configuration
[3] http://paperjs.org/tutorials/getting-started/using-javascript-directly/
[4] http://www.ecma-international.org/ecma-262/5.1/#sec-11.6
[5] http://www.2ality.com/2011/12/fake-operator-overloading.html

OverKing53

Ankömmling

  • »OverKing53« ist der Autor dieses Themas

Motto: Lass dir nie von Jemandem einreden, dass du etwas nicht kannst. Denn wenn jemand etwas nicht kann, dann versucht er dir einzureden, dass du es auch nicht kannst. Und wenn du etwas willst, dann mach es einfach.

  • Nachricht senden

3

Montag, 4. Januar 2016, 00:32

Ja, so in der Art habe ich das eigentlich auch schon gewusst.
Aber ich dachte weil die Spielausführung im MV ein Browser ist, würde das vielleicht funktionieren.
Das ist echt schade.. :/

Ich wollte, wie in meinem ersten Beispiellink, eigentlich nur die Schreibweise und Nutzung bestimmter Funktionen vereinfachen.
Z.B. habe ich eine Klasse KO (Koordinate) und wenn ich zwei Objekte der Klasse KO zusammen addiere kommt ein neues KO-Objekt mit den addierten x- und y-Werten raus.
Die valueOf-Methode ist also keine Option.

Der ECMA Script Standard wird mir wahrscheinlich, wie du schon sagst, auch nicht weiter helfen.

Theoretisch müsste man das doch aber irgendwie umsetzen können oder?

4

Montag, 4. Januar 2016, 01:23

Ich wüsste gerade nicht wie.

Zwei Möglichkeiten, die mir spontan einfallen:
  1. Du machst einen Methodenansatz der Form

    JavaScript Quellcode

    1
    2
    3
    
    KO.prototype.createFrom = function(ko1, ko2) {
        return KO(ko1.x + ko2.x, ko1.y + ko2.y);
    }
    Und baust dir das entsprechend auf, verzichtest also auf Operatoren.

  2. Du verfolgst die Idee von PaperScript und parsed erstmal allen Scriptcode und ersetzt die Operatoren + und - durch ähnliche Methodenkonstrukte wie es PaperScript macht, was aber einiges an Arbeit ist und sich für mich auch irgendwie seltsam anfühlt.

Operatoren lassen sich in einigen Sprachen nicht überladen - JavaScript ist halt aktuell leider eine davon. Ich persönliche würde Möglichkeit 1 verwenden, aber vielleicht gibt es auch noch mehr Ideen.

OverKing53

Ankömmling

  • »OverKing53« ist der Autor dieses Themas

Motto: Lass dir nie von Jemandem einreden, dass du etwas nicht kannst. Denn wenn jemand etwas nicht kann, dann versucht er dir einzureden, dass du es auch nicht kannst. Und wenn du etwas willst, dann mach es einfach.

  • Nachricht senden

5

Montag, 4. Januar 2016, 03:23

Ja.. leider ist Javascript eine davon.
Ich werde mich denk ich vorerst mit Nr.1 zufrieden geben.

Am meisten Interesse hätte ich dann aber trotz des Aufwandes an Möglichkeit Nr.2.
Ich werde mich demnächst mal etwas damit auseinandersetzen.
Und dann schau ich weiter.

Ich bin aber offen für weitere Ideen.

Und danke dir Playm für deine Antworten :)

Social Bookmarks