Hallo. Ich habe vor Kurzem den Javascript Kurs auf Codecademy durchgenommen und versuche nun zu lernen, im RPG Maker MV Plugins zu erstellen.
Das erste was ich gerne machen würde, wäre ein Plugin für ein eigenes Menu von dem ich auf das Inventar, die Party, die Optionen etc.. zugreifen kann.
Ich möchte jedoch nicht das schon bestehende Menü anpassen, sondern der Ordentlichkeit halber das bestehende Menü beiseitelegen und stattdessen das eigene verwenden, indem ich den Keybind vom Alten für das neue Menü benutze und dann für das neue Menü auch ein neues Inventar, Partybildschirm, Optionen etc. erstelle.
Soweit so gut, ich habe dank eines Tutorials (auf Youtube) geschafft, ein leeres Fenster zu erstellen. Siehe Hier (ich öffne es noch über Scene_Manager.push)
Schwierigkeiten habe ich jetzt dabei, Buttons/Knöpfe zu erstellen, die man highlighten kann und durch die man durchschalten kann.
Im js Ordner hab ich mir in den rpg_windows.js und rpg_scenes.js Dateien die Scene_Menu und Window_MenuCommand angeguckt und dachte mir, davon etwas abzugucken.
Aber wenn ich z.B. an den Punkt mit .createCommandWindow komme, muss ich ja this.setHandler benutzen, was mir aber dann eine Fehlermeldung gibt, wenn ich das Menu aufrufen will
(ungefähr: "Can't read property . setHandler of undefined").
Mir fehlt da auf jeden fall noch Überblick und vielleicht ist ja meine Herrangehensweise falsch? Ich hoffe ich war klar genug und dass mir jemand helfen kann.
Natürlich benutze ich im eigenen Plugin nicht die Wörter Scene_Menu und Window_MenuCommand. Ich nenne sie stattdessen Scene_CustomMenu und Window_Custom.
Bis jetzt sieht das Plugin so aus:
Ich weiß nicht wirklich, wie ich ab da weitermachen müsste, also habe ich meine anderen fehlgeschlagenen Versuche aus dem Code rausgenommen.
- function Scene_CustomMenu() {
- this.initialize.apply(this, arguments);
- };
- Scene_CustomMenu.prototype = Object.create(Scene_MenuBase.prototype);
- Scene_CustomMenu.prototype.constructor = Scene_CustomMenu;
- Scene_CustomMenu.prototype.initialize = function() {
- Scene_MenuBase.prototype.initialize.call(this);
- };
- Scene_CustomMenu.prototype.create = function() {
- Scene_MenuBase.prototype.create.call(this);
- let MenuWidth = 150;
- let MenuX = window.innerWidth - MenuWidth;
- this._customWindow = new Window_Custom(MenuX, 0, MenuWidth, 240);
- this.addWindow(this._customWindow);
- };
- function Window_Custom() {
- this.initialize.apply(this, arguments);
- };
- Window_Custom.prototype = Object.create(Window_Base.prototype),
- Window_Custom.prototype.constructor = Window_Custom;
- Window_Custom.prototype.initialize = function(x, y, width, height) {
- Window_Base.prototype.initialize.call(this, x, y, width, height);
Alles anzeigen
Eventuell bin ich auch auf dem Discord.