Войти на сайт

Авторизация, ждите ...
×

ТЕМА: Размещение окна команд в титульном меню

Размещение окна команд в титульном меню 9 года 1 мес. назад #86400

  • DeadElf79
  • DeadElf79 аватар
  • Вне сайта
  • Звездный Страж
  • Сообщений: 3147
  • Спасибо получено: 2650
  • 3 местоПисатель 3 место1 место в ГотвПрограммист RubyПроект месяца 1 местоВетеранОрганизатор конкурсовПроект месяца 2 местоУчитель
Размещение окна команд в титульном меню
Название скрипта: Scene_Title - CommandPosition
Автор: DeadElf79
Версия: 1.0
Описание: Размещает окно на титульном экране в нужном положении с привязкой к координатам. Альтернатива плагину, идущему в комплекте, который позволяет лишь сместить окно относительно центра, а не задать ему четкие координаты.
Параметры:
  • X - Координата по X относительно начала координат
  • Y - Координата по Y относительно начала координат
  • View Skin - Позволяет отключить скин окна. 0 - выкл. скин, 1 - вкл.
  • Start Point - 0 - левый верхний угол, 1 - правый верхний, 2 - левый нижний, 3 - правый нижний
Код:
//=============================================================================
// Scene_Title - CommandPosition.js
//=============================================================================
/*:
 * @plugindesc Размещает окно на титульном экране в нужном положении с привязкой к координатам
 * @author DeadElf79
 
 * @param X
 * @desc Координата по X относительно начала координат
 * @default -200
 
 * @param Y
 * @desc Координата по Y относительно начала координат
 * @default -150
 
 * @param View Skin
 * @desc Позволяет отключить скин окна. 0 - выкл. скин, 1 - вкл.
 * @default 0
 
 * @param Start Point
 * @desc 0 - левый верхний угол, 1 - правый верхний, 2 - левый нижний, 3 - правый нижний
 * @default 3
 
*/
 
(function() {
 
    var parameters = PluginManager.parameters('TitleCommandPosition');
    var x = Number(parameters['X'] || 100);
    var y = Number(parameters['Y'] || 20);
    var skin = Number(parameters['View Skin'] || 0);
    var start_point = Number(parameters['Start Point'] || 0);
 
    var ox, oy;
    switch (start_point){
	case 0:
		ox = 0;
		oy = 0;
		break;
	case 1:
		ox = Graphics.width;
		oy = 0;
		break;
	case 2:
		ox = 0;
		oy = Graphics.height;
		break;
	case 3:
		ox = Graphics.width;
		oy = Graphics.height;
		break;
	default:
		ox = 0;
		oy = 0;
    }
 
    var _Window_TitleCommand_updatePlacement = Window_TitleCommand.prototype.updatePlacement;
    Window_TitleCommand.prototype.updatePlacement = function() {
        _Window_TitleCommand_updatePlacement.call(this);
	this.x = ox + x;
	this.y = oy + y;
    };
 
})();

Первый пост с оформлением в этом разделе. Позднее нужно все последующие оформлять также, уже готовлю шаблон с описанием.
Последнее редактирование: 9 года 1 мес. назад от DeadElf79.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Ren310, tvorimvsevmeste, EvilCat

Размещение окна команд в титульном меню 9 года 1 мес. назад #86401

  • Kian Ni
  • Kian Ni аватар
  • Вне сайта
  • Заблокирован
  • Я души кушаю людей.
  • Сообщений: 1247
  • Спасибо получено: 412
Спешу тебя огорчить, но такой скрипт идет в комплекте с мейкером.
Администратор запретил публиковать записи гостям.

Размещение окна команд в титульном меню 9 года 1 мес. назад #86402

  • DeadElf79
  • DeadElf79 аватар
  • Вне сайта
  • Звездный Страж
  • Сообщений: 3147
  • Спасибо получено: 2650
  • 3 местоПисатель 3 место1 место в ГотвПрограммист RubyПроект месяца 1 местоВетеранОрганизатор конкурсовПроект месяца 2 местоУчитель
Спешу тебе ответить, что тот скрипт несёт лишь сдвиг относительно центра экрана. Мой - задает относительно указанного угла (что удобно, если хочется сделать меню в левом нижнем углу и чтобы при любом разрешении это работало верно).

На данный момент разбираюсь, как скрыть шкурку окна. И у меня проблема с получением Graphics.wdith - оно выводит undefined и я пока не понимаю, почему.
Последнее редактирование: 9 года 1 мес. назад от DeadElf79.
Администратор запретил публиковать записи гостям.

Размещение окна команд в титульном меню 9 года 1 мес. назад #86403

  • Kian Ni
  • Kian Ni аватар
  • Вне сайта
  • Заблокирован
  • Я души кушаю людей.
  • Сообщений: 1247
  • Спасибо получено: 412
Те же яйца, только в профиль.

Потому что там Graphics.boxWidth.
Администратор запретил публиковать записи гостям.

Размещение окна команд в титульном меню 9 года 1 мес. назад #86405

  • DeadElf79
  • DeadElf79 аватар
  • Вне сайта
  • Звездный Страж
  • Сообщений: 3147
  • Спасибо получено: 2650
  • 3 местоПисатель 3 место1 место в ГотвПрограммист RubyПроект месяца 1 местоВетеранОрганизатор конкурсовПроект месяца 2 местоУчитель
Киан, первый плагин на десятой минуте изучения местного варианта JS, чего ты хотел? Боевую систему? Освещение? ^_^

За параметр спасибо, попробую
Администратор запретил публиковать записи гостям.

Размещение окна команд в титульном меню 9 года 1 мес. назад #86406

  • Kian Ni
  • Kian Ni аватар
  • Вне сайта
  • Заблокирован
  • Я души кушаю людей.
  • Сообщений: 1247
  • Спасибо получено: 412
Нет, я не хотел тебя обидеть или задеть, просто зачем делать то, что уже есть?
Администратор запретил публиковать записи гостям.

Размещение окна команд в титульном меню 9 года 1 мес. назад #86407

  • DeadElf79
  • DeadElf79 аватар
  • Вне сайта
  • Звездный Страж
  • Сообщений: 3147
  • Спасибо получено: 2650
  • 3 местоПисатель 3 место1 место в ГотвПрограммист RubyПроект месяца 1 местоВетеранОрганизатор конкурсовПроект месяца 2 местоУчитель
Потому что я пока даже того, что есть, не понимаю. Вот, буду учиться на ошибках.
Администратор запретил публиковать записи гостям.

Размещение окна команд в титульном меню 9 года 1 мес. назад #86408

  • Kian Ni
  • Kian Ni аватар
  • Вне сайта
  • Заблокирован
  • Я души кушаю людей.
  • Сообщений: 1247
  • Спасибо получено: 412
Ладно, удачи тебе бро.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: DeadElf79

Размещение окна команд в титульном меню 9 года 1 мес. назад #86520

  • DeadElf79
  • DeadElf79 аватар
  • Вне сайта
  • Звездный Страж
  • Сообщений: 3147
  • Спасибо получено: 2650
  • 3 местоПисатель 3 место1 место в ГотвПрограммист RubyПроект месяца 1 местоВетеранОрганизатор конкурсовПроект месяца 2 местоУчитель
Проблема с размещением окна с зависимостью от разрешения экрана решается очень просто и не имеет последствий (я, по крайней мере, их не увидел):

js/main.js
//=============================================================================
// main.js
//=============================================================================
 
//PluginManager.setup($plugins);
 
window.onload = function() {
    SceneManager.run(Scene_Boot);
};

js/rpg_manager.js строка 1470
SceneManager.run = function(sceneClass) {
    try {
        this.initialize();
        // --- ADDED PLUGIN LOADING AFTER INITIALIZE
        PluginManager.setup($plugins);
        // ---
        this.goto(sceneClass);
        this.requestUpdate();
    } catch (e) {
        this.catchException(e);
    }
};

Прошу EvilCat и всех разбирающихся проверить на совместимость с их плагинами. Если всё в порядке, то всякие странные плагины эльфа можно будет использовать с этим костылем ^_^
Последнее редактирование: 9 года 1 мес. назад от DeadElf79.
Администратор запретил публиковать записи гостям.

Размещение окна команд в титульном меню 5 года 9 мес. назад #109369

  • Alexandr_7
  • Alexandr_7 аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1196
  • Спасибо получено: 544
  • ВетеранУчительПроект месяца 3 местоПроект месяца 1 местоПроект года 3 местоПроект месяца 2 место
Изменил оригинальный скрипт.
Добавил так EnableOffset. Он отвечает будет ли задано смещение или будет задана позиция.
Позже переведу и доведу до удобства к версии 1.5.
Ещебы потом скинуть разроаботчику оригинала. Тоесть самому Yoji Ojima. Но его найти бы на форуме или его почту.
//=============================================================================
// TitleCommandPosition.js
//=============================================================================
 
/*:
 * @plugindesc Changes the position of the title command window.
 * @author Yoji Ojima (Fix from Alexandr_7)
 *
 * @param EnableOffset
 * @desc Set by offset
 * @type boolean
 * @on Enable
 * @off Disable
 * NO - false     YES - true
 * @default false
 *
 * @param Offset X
 * @desc The offset value for the x coordinate.
 * @default 0
 *
 * @param Offset Y
 * @desc The offset value for the y coordinate.
 * @default 0
 *
 * @param Width
 * @desc The width of the command window.
 * @default 240
 *
 * @param Background
 * @desc The background type. 0: Normal, 1: Dim, 2: Transparent
 * @default 0
 *
 * @help This plugin does not provide plugin commands.
 */
 
/*:ja
 * @plugindesc タイトルコマンドウィンドウの位置を変更します。
 * @author Yoji Ojima
 *
 * @param EnableOffset
 * @desc Set by offset
 * @type boolean
 * @on Enable
 * @off Disable
 * NO - false     YES - true
 * @default false
 *
 * @param Offset X
 * @desc X座標のオフセット値です。
 * @default 0
 *
 * @param Offset Y
 * @desc Y座標のオフセット値です。
 * @default 0
 *
 * @param Width
 * @desc コマンドウィンドウの幅です。
 * @default 240
 *
 * @param Background
 * @desc 背景タイプです。0: 通常、1: 暗くする、2: 透明
 * @default 0
 *
 * @help このプラグインには、プラグインコマンドはありません。
 */
 
(function() {
 
    var parameters = PluginManager.parameters('TitleCommandPosition');
	var EnableOffset = eval(String(parameters['EnableOffset']));
    var offsetX = Number(parameters['Offset X'] || 0);
    var offsetY = Number(parameters['Offset Y'] || 0);
    var width = Number(parameters['Width'] || 240);
    var background = Number(parameters['Background'] || 0);
 
    var _Window_TitleCommand_updatePlacement =
            Window_TitleCommand.prototype.updatePlacement;
    Window_TitleCommand.prototype.updatePlacement = function() {
        _Window_TitleCommand_updatePlacement.call(this);
        if (EnableOffset == true) {
			this.x += offsetX;
			this.y += offsetY;
		} else {
			this.x = offsetX;
			this.y = offsetY;
		}
 
        this.setBackgroundType(background);
    };
 
    Window_TitleCommand.prototype.windowWidth = function() {
        return width;
    };
 
})();
смещения.
В отличите от твоего все функции оригинала присутствуют. Тоесть тотже background некуда не делся и его можно использоввать.

Вообще не понимаю этих японцев. Во всяком случае Yoji Ojima ленивый раз поленился добавить пару строчек кода.
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Последнее редактирование: 5 года 9 мес. назад от Alexandr_7.
Администратор запретил публиковать записи гостям.
Модераторы: NeKotZima
Время создания страницы: 0.208 секунд