Здравствуйте! У меня нет RPG Maker MV, но попробуйте вот такой код, чтобы отцентрировать:
var _Window_MapName_initialize = Window_MapName.prototype.initialize;
Window_MapName.prototype.initialize = function () {
_Window_MapName_initialize.call(this);
this.x = (Graphics.boxWidth - this.width) / 2;
}
Или вот такой, чтобы разместить справа:
var _Window_MapName_initialize = Window_MapName.prototype.initialize;
Window_MapName.prototype.initialize = function () {
_Window_MapName_initialize.call(this);
this.x = Graphics.boxWidth - this.width;
}
Обратите внимание: я
не проверял этот код, потому что у меня нет MV под рукой, и не могу гарантировать его работоспособность. Если при использовании этого кода появится ошибка, скажите, пожалуйста, текст этой ошибки — я исправлю. Если что-то непонятно, спрашивайте.
Пояснение:
- строчка var _Window_MapName_initialize = Window_MapName.prototype.initialize определяет переменную _Window_MapName_initialize и сохраняет в ней старое значение функции инциализации (initialize) для Window_MapName;
- Window_MapName.prototype.initialize = function () { ... } заменяет функцию initialize для Window_MapName на нашу собственную функцию-замену,
- _Window_MapName_initialize.call(this); вызывает старую функцию инициализации внутри нашей новой функции, передавая в качестве текущего объекта [this] текущий объект this функции-замены — чтобы вся инициализация Window_MapName производилась и после замены;
- строка this.x = ...; присваивает значение переменной x текущего объекта (то есть координате окна по оси x), при увеличении x окно сдвигается направо: если x равно 0, то окно слева, а если x равно Graphics.boxWidth, то окно ровно за правой границей экрана; чтобы окно было в пределах экрана, нужно присваивать значения от 0 до (Graphics.boxWidth - this.width).
RastaManGames пишет:
Скорее всего можно сделать это парой правок в *js файлах проекта или же можно написать "костыль"
Править стандартные JS-файлы не стоит. Это лишит Вас возможности обновить свою игру до новой версии RPG Maker MV в будущем, ведь такое обновление затрёт все Ваши изменения.
Если интересно, то при редактировании файла можно заменить 0 в Window_Base.prototype.initialize.call(this, 0, 0, wight, height); на что-то другое. Например, можно заменить на Window_Base.prototype.initialize.call(this,
Graphics.boxWidth - wight, 0, wight, height); — при вызове Window_Base.prototype.initialize передаются координаты по x, по y, ширина и высота (а при вызове через .call ещё и объект this), то есть можно заменить первый 0 на координату по x.
Но
так делать не надо, ведь RPG Maker MV постоянно обновляется, оптимизируется, в нём исправляются ошибки. Если Вы отредактируете свои файлы, то
Вы потеряете возможность обновить движок в будущем, а это очень плохо.
Оформление своего кода в плагинах — это не «костыль», а рекомендуемый подход, «лучшая практика».