Войти на сайт

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

ТЕМА: [MV] WhitePaper_PressXManyTimes

[MV] WhitePaper_PressXManyTimes 4 мес. 2 нед. назад #108324

  • WhitePaper
  • WhitePaper аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 250
  • Спасибо получено: 741
  • РазработчикПроект месяца 3 местоПроект месяца 2 местоПисатель 3 место
Название плагина: PressXManyTimes
Автор: WhitePaper
Версия: 1.1
Дата выхода: 10.01.2019
Описание плагина:
Мини-игра, в которой нужно наполнить шкалу с помощью нажатия клавиши подтверждения (Enter, пробел или Z). После первого нажатия шкала начинает опустошаться. Если она станет пустой - игрок проиграет.

Помощь в использовании плагина [ Нажмите, чтобы развернуть ]


Код плагина:
//=============================================================================
// WhitePaper_PressXManyTimes.js
//=============================================================================
 
/*:
 * @plugindesc Мини-игра, в которой нужно наполнить шкалу с помощью нажатия клавиши подтверждения (Enter, пробел или Z). После первого нажатия шкала начинает опустошаться. Если она станет пустой - игрок проиграет.
 * @author WhitePaper
 *
 * @param Win variable ID
 * @desc Номер переменной, в которую сохраняется результат мини-игры (по умолчанию 1)
 * @default 1
 * @type variable
 *
 * @param Power variable ID
 * @desc Номер переменной, которая опередяет уровень наполнения шкалы за нажатие в процентах (по умолчанию 3)
 * @default 3
 * @type variable
 *
 * @help Мини-игра, в которой нужно наполнить шкалу с помощью нажатия клавиши 
 * подтверждения (Enter, пробел или Z). После первого нажатия шкала начинает 
 * опустошаться. Если она станет пустой - игрок проиграет.
 *
 * В Win variable ID сохраняется результат мини-игры:
 *  1 - победа
 * -1 - поражение
 *
 * В Power variable ID определяется уровень наполнения шкалы за нажатие клавиши.
 * Значение в процентах.
 * Например:
 *  100 - шкала полностью заполняется
 *  20 - шкала заполняется на 20%
 * Шкала убавляется на 1 процент каждый кадр.
 *
 * Команды плагина:
 * PressXCall - вызывает мини-игру
 * 
 */
(function() {
    var params = PluginManager.parameters('WhitePaper_PressXManyTimes');
	var powerId = params['Power variable ID'];
	var winId = params['Win variable ID'];
 
	Window_Base.prototype.drawPressXGauge = function(x, y, width, rate, color1, color2) {
		var fillW = Math.floor(width * rate);
		var gaugeY = y + this.lineHeight() * 2 - 8;
		var height = 100;
		this.contents.fillRect(x, gaugeY, width, height, this.gaugeBackColor());
		this.contents.gradientFillRect(x, gaugeY, fillW, height, color1, color2);
	};
	var PressX_command = Game_Interpreter.prototype.pluginCommand;
	Game_Interpreter.prototype.pluginCommand = function(command, args) {
		PressX_command.apply(this);
		SceneManager.push(Scene_PressX);
	};
 
	function Window_PressX() {
        this.initialize.apply(this, arguments);
		h = 0;
		okPress = 0;
		POWER = $gameVariables.value(powerId) * 0.01;
    };
	Window_PressX.prototype = Object.create(Window_Base.prototype);
    Window_PressX.prototype.constructor = Window_PressX;
    Window_PressX.prototype.update = function() {
		if (h >=0.01) {
			h -= 0.01;
		};
        this.contents.clear();
 
		this.drawPressXGauge(0, 0, 500, h, this.hpGaugeColor1(), this.hpGaugeColor2());
		if (Input.isRepeated('ok')) {
            this.onButtonOk();
        };
		if (h >= 1){
			$gameVariables.setValue(winId, 1);
			SceneManager.pop();
			//return 1;
		};
		if (okPress !== 0 && h <= 0.01){
			$gameVariables.setValue(winId, -1);
			SceneManager.pop();
		};
	};
	Window_PressX.prototype.onButtonOk = function() {
		this.contents.clear();
		h +=POWER;
		okPress = 1;
		if (h >= 1) {
			h = 1;
		}
		this.drawPressXGauge(0, 0, 500, h, this.hpGaugeColor1(), this.hpGaugeColor2());
 
	};
	function Scene_PressX() {
		this.initialize.apply(this, arguments);
	};
	Scene_PressX.prototype = Object.create(Scene_MenuBase.prototype);
	Scene_PressX.prototype.constructor = Scene_PressX;
 
	Scene_PressX.prototype.initialize = function() {
		Scene_MenuBase.prototype.initialize.call(this);
	};
 
	Scene_PressX.prototype.create = function() {
		Scene_MenuBase.prototype.create.call(this);
		this.createWindow();
	};
	Scene_PressX.prototype.createWindow = function() {
		this._pressX = new Window_PressX(Graphics.boxWidth / 2 - 250,Graphics.boxHeight / 2 - 60, 500, 120);
        this.addWindow(this._pressX);
	};
 
	Scene_Menu.prototype.start = function() {
		Scene_MenuBase.prototype.start.call(this);
	};
})();
 

Также можно скачать с Google Диск.
Реальность - это, конечно, хорошо, но иногда лучше побыть в воображении. (˶◕‿◕˶✿)
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, Seibur, DK, Yros, yuryol, Doctor_Bug, PringOva

[MV] WhitePaper_PressXManyTimes 4 мес. 2 нед. назад #108325

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1183
  • Спасибо получено: 1772
  • УчительОраторПобедитель конкурса1 место в ГотвКомпозитор3 место Готв2 место
var params = PluginManager.parameters('WhitePaper_PressXManyTimes');
var powerId = params['Power variable ID'];
var winId = params['Win variable ID'];

можно переписать так (просто вдруг не знаешь):
var params = PluginManager.parameters('WhitePaper_PressXManyTimes'),
    powerId = params['Power variable ID']
    winId = params['Win variable ID'];



drawPressXGauge - единственная функция которая с верблюжьим названием. может ее тоже в змеинный переписать? и название плагина тоже может?
кстати в самом мукере тоже по-разному пишут. кто-нибудь знает почему? типа змеинный для классов, для остального верблюжий? или глобальные змеинным?


а так всё нравится, написано понятно и лаконично :blush:
Последнее редактирование: 4 мес. 2 нед. назад от yuryol.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Noxmils

[MV] WhitePaper_PressXManyTimes 4 мес. 2 нед. назад #108328

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Бог Светлого
  • Сообщений: 808
  • Спасибо получено: 469
  • Программист JavaScript Программист RubyДаритель СтимкеяВетеранОратор
Насколько заметил, в мейкере переменные верблюжий, типы с заглавных, а подчеркивание отделяет категорию в именах типа (Window, Scene, alias и т д).
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: yuryol
Время создания страницы: 0.239 секунд