- Сообщений: 172
- Спасибо получено: 92
Позиция названия локации
8 года 10 мес. назад #98744
от RastaManGames
RastaManGames создал тему: Позиция названия локации
К сожалению, на зарубежном ресурсе мне так и не ответили, существует ли плагин, позволяющий изменить положение отображения названия локации (которое отображается при входе в неё), поэтому я бы хотел спросить знатоков здесь.
Я использую боевую систему Alpha ABS от господина KageDesu и, к сожалению, по-умолчанию название локации отображается поверх HUD'а игрока и поэтому мне хотелось бы, чтобы название локации отображалось в правом вернем углу.
Скорее всего можно сделать это парой правок в *js файлах проекта или же можно написать "костыль" (подобный мне помогли и написали, когда мне нужно было отцентрировать главное меню строго по середине).
В общем, прошу помощи мастодонтов RPG Maker'а.
Я использую боевую систему Alpha ABS от господина KageDesu и, к сожалению, по-умолчанию название локации отображается поверх HUD'а игрока и поэтому мне хотелось бы, чтобы название локации отображалось в правом вернем углу.
Скорее всего можно сделать это парой правок в *js файлах проекта или же можно написать "костыль" (подобный мне помогли и написали, когда мне нужно было отцентрировать главное меню строго по середине).
В общем, прошу помощи мастодонтов RPG Maker'а.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
8 года 10 мес. назад #98747
от Paranoid
Paranoid ответил в теме Позиция названия локации
Нашел скрипт на имя карты. Не факт что это оно, но там есть возможность менять положение вроде как.
endlessillusoft.com/map-name-plus/
endlessillusoft.com/map-name-plus/
Спасибо сказали: RastaManGames
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
8 года 10 мес. назад - 8 года 10 мес. назад #98760
от RastaManGames
RastaManGames ответил в теме Позиция названия локации
К сожалению, это не то, что нужно, но всё равно спасибо!
Название карты с этим плагином прокручивается в верхнем левом углу экрана как бегущая строка.
Я всё же подозреваю, что можно подправить определённую строку в *js файлах проекта.
P.S.: В файле "rpg_windows.js" я нашёл блок под это дело:
В своё время мне помогли отцентрировать главное меню, предложив создать *js файл в папке с плагинами:
Хотелось бы, чтобы тут пошаманил JS-Сеньор и подсказал, что можно запихать в *js файл в папку с плагинами, чтобы название локации отображалось по центру или справа.
Название карты с этим плагином прокручивается в верхнем левом углу экрана как бегущая строка.
Я всё же подозреваю, что можно подправить определённую строку в *js файлах проекта.
P.S.: В файле "rpg_windows.js" я нашёл блок под это дело:
Code:
// Window_MapName
//
// The window for displaying the map name on the map screen.
function Window_MapName() {
this.initialize.apply(this, arguments);
}
Window_MapName.prototype = Object.create(Window_Base.prototype);
Window_MapName.prototype.constructor = Window_MapName;
Window_MapName.prototype.initialize = function() {
var wight = this.windowWidth();
var height = this.windowHeight();
Window_Base.prototype.initialize.call(this, 0, 0, wight, height);
this.opacity = 0;
this.contentsOpacity = 0;
this._showCount = 0;
this.refresh();
};
Window_MapName.prototype.windowWidth = function() {
return 360;
};
Window_MapName.prototype.windowHeight = function() {
return this.fittingHeight(1);
};
Window_MapName.prototype.update = function() {
Window_Base.prototype.update.call(this);
if (this._showCount > 0 && $gameMap.isNameDisplayEnabled()) {
this.updateFadeIn();
this._showCount--;
} else {
this.updateFadeOut();
}
};
Window_MapName.prototype.updateFadeIn = function() {
this.contentsOpacity += 16;
};
Window_MapName.prototype.updateFadeOut = function() {
this.contentsOpacity -= 16;
};
Window_MapName.prototype.open = function() {
this.refresh();
this._showCount = 150;
};
Window_MapName.prototype.close = function() {
this._showCount = 0;
};
Window_MapName.prototype.refresh = function() {
this.contents.clear();
if ($gameMap.displayName()) {
var width = this.contentsWidth();
this.drawBackground(0, 0, width, this.lineHeight());
this.drawText($gameMap.displayName(), 0, 0, width, 'center');
}
};
Window_MapName.prototype.drawBackground = function(x, y, width, height) {
var color1 = this.dimColor1();
var color2 = this.dimColor2();
this.contents.gradientFillRect(x, y, width / 2, height, color2, color1);
this.contents.gradientFillRect(x + width / 2, y, width / 2, height, color1, color2);
};
В своё время мне помогли отцентрировать главное меню, предложив создать *js файл в папке с плагинами:
Code:
var _Window_TitleCommand_updatePlacement_Alias = Window_TitleCommand.prototype.updatePlacement;
Window_TitleCommand.prototype.updatePlacement = function() {
_Window_TitleCommand_updatePlacement_Alias.call(this)
this.x = 300;
this.y = 256;
};
Хотелось бы, чтобы тут пошаманил JS-Сеньор и подсказал, что можно запихать в *js файл в папку с плагинами, чтобы название локации отображалось по центру или справа.
Последнее редактирование: 8 года 10 мес. назад пользователем RastaManGames.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
8 года 9 мес. назад - 8 года 9 мес. назад #98891
от Dmy
Dmy ответил в теме Позиция названия локации
Здравствуйте! У меня нет RPG Maker MV, но попробуйте вот такой код, чтобы отцентрировать:
Или вот такой, чтобы разместить справа:
Обратите внимание: я не проверял этот код, потому что у меня нет 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 постоянно обновляется, оптимизируется, в нём исправляются ошибки. Если Вы отредактируете свои файлы, то Вы потеряете возможность обновить движок в будущем, а это очень плохо.
Оформление своего кода в плагинах — это не «костыль», а рекомендуемый подход, «лучшая практика».
Code:
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;
}
Или вот такой, чтобы разместить справа:
Code:
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).
Править стандартные JS-файлы не стоит. Это лишит Вас возможности обновить свою игру до новой версии RPG Maker MV в будущем, ведь такое обновление затрёт все Ваши изменения.RastaManGames пишет: Скорее всего можно сделать это парой правок в *js файлах проекта или же можно написать "костыль"
Если интересно, то при редактировании файла можно заменить 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 постоянно обновляется, оптимизируется, в нём исправляются ошибки. Если Вы отредактируете свои файлы, то Вы потеряете возможность обновить движок в будущем, а это очень плохо.
Оформление своего кода в плагинах — это не «костыль», а рекомендуемый подход, «лучшая практика».
Последнее редактирование: 8 года 9 мес. назад пользователем Dmy.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.095 секунд
