Записи Gener_Al
RPGMaker и кнопочка F5.
Если вы не знаете, Мейкер работает в 2 режимах. Отладочном – когда вы запускаете игру из-под среды разработки и нормальном – когда вы экспортируете проект под нужную платформу и т.д.
В отладочном режиме можно смотреть логи, ошибки, переменные и прочее. В нормальном, конечно же, этого нет. Но остается (и я считаю, что это результат ошибки разрабов, которую они леняться править) обработка кнопки F5 – рестарт игры.
На самом деле это очень плохо и неудобно, ведь во многих современных играх F5 – это быстрое сохранение. Человек по привычке нажимает, и БЕЗ ВОПРОСА на подтверждение операции отправляется в начало игры. Раздражающий маразм.
Я несколько раз пытался поднимать этот вопрос, но обычно говорят, что это не важно или, что мы тут «для своих игры делаем, они в теме». Это не аргумент, так как любая (особенно некоммерческая) разработка – это попытка показать окружающим, что ты сделал. И чем больше этих окружающих будет, тем лучше, к тому же многие все-таки мечтают, что их «заметят» игра разойдется, будет известной. А подобные косяки управления и интерфейса отталкивают многих потенциальных игроков в первые же моменты их знакомства с игрой.
Для себя я решил эту проблему «плагином» (если это убожество можно так назвать). Это решение убирает обработку F5 вне отладочного режима.
Либо вставьте в любой имеющийся плагин, в конец перед
})();
такие строки
SceneManager.onKeyDown = function(event) {
if (!event.ctrlKey && !event.altKey) {
switch (event.keyCode) {
case 116: // F5
if (Utils.isNwjs() && Utils.isOptionValid('test')) {
location.reload();
}
break;
case 119: // F8
if (Utils.isNwjs() && Utils.isOptionValid('test')) {
require('nw.gui').Window.get().showDevTools();
}
break;
}
}
};
Либо как отдельный плагин (прошу прощения за столь пышное название)
//================================================== ===============
// NoF5.js
//================================================== ===============
(function() {
SceneManager.onKeyDown = function(event) {
if (!event.ctrlKey && !event.altKey) {
switch (event.keyCode) {
case 116: // F5
if (Utils.isNwjs() && Utils.isOptionValid('test')) {
location.reload();
}
break;
case 119: // F8
if (Utils.isNwjs() && Utils.isOptionValid('test')) {
require('nw.gui').Window.get().showDevTools();
}
break;
}
}
};
})();