🤔 Para Refletir :
"Publique seu jogo. Dê a cara a tapa. Vai ter hater? Sim, porque você foi lá e fez, tem gente que nem faz!"
- HenriqueGibi

RPG Maker MV "deselecionar" opção de um menu [MV]

Estado
Tópico fechado. Não é possível fazer postagens nela.

HermesPasser Masculino

Duque
Membro
Membro
Vícios e amores servem para preencher o vazio
Juntou-se
23 de Março de 2017
Postagens
836
Bravecoins
92
Eu estava criando tentando criar um menu com três opções, sendo que dois deles alteravam uma variável, eu estou planejando usar em um sistema de leitura de livros, mas percebi que quando seleciono uma das opções a window trava. Alguém save como impedir que ela trave após uma opção ser selecionada ou um jeito de destrava-lá?

Código (para chamar isso, o comando é book):
Código:
//-----------------------------------------------------------------------------
// 
//=============================================================================

/*:
 * @plugindesc 
 * @author Hermes Passer
 */

(function() {
	
	//------ Game Interpreter
	
    var game_Interpreter = Game_Interpreter.prototype.pluginCommand;
    
	Game_Interpreter.prototype.pluginCommand = function(command, args) {		
		game_Interpreter.call(this, command, args);
		if (command === 'Book') {
			SceneManager.push(Scene_Book);
        }
    };
	
	//------ Scene
	
	var scene_MenuBase_createBackground = Scene_MenuBase.prototype.createBackground;
	var window_command;
	var index = 0;
	
    function Scene_Book() {
        this.initialize.apply(this, arguments);
    }

    Scene_Book.prototype = Object.create(Scene_MenuBase.prototype);
    Scene_Book.prototype.constructor = Scene_Book;

    Scene_Book.prototype.create = function() {
        Scene_MenuBase.prototype.create.call(this);
    };
	
    Scene_Book.prototype.initialize = function() {
        Scene_MenuBase.prototype.initialize.call(this);
		window_command = new Window_Cmd();
		window_command.setHandler('prev',   this.priviousPage.bind(this));
		window_command.setHandler('next',   this.nextPage.bind(this));
		window_command.setHandler('cancel', this.cancel.bind(this));
		this.addChild(window_command);
    };
	
	var scenebook_update = Scene_Book.prototype.update;
	Scene_Book.prototype.update = function() {
		scenebook_update.call(this);
	}
	
	Scene_Book.prototype.createBackground = function() {
	};
	
	Scene_Book.prototype.cancel = function() {
		SceneManager.push(Scene_Map);
	}
	
	Scene_Book.prototype.priviousPage = function() {		
		index--; 
	}
	
	Scene_Book.prototype.nextPage = function() {
		index++; 
	}
	
	//------ Window Command

	function Window_Cmd() {
		this.initialize.apply(this, arguments);
	}

	Window_Cmd.prototype = Object.create(Window_HorzCommand.prototype);
	Window_Cmd.prototype.constructor = Window_Cmd;

	Window_Cmd.prototype.initialize = function() {
		Window_HorzCommand.prototype.initialize.call(this, 0, 0);
		this.updatePlacement();
		this.openness = 0;
		this.height = 65;
		this.open();
	};

	Window_Cmd.prototype.windowWidth = function() {
		return 200;
	};

	Window_Cmd.prototype.updatePlacement = function() {
		this.x = 0;
		this.y = Graphics.boxHeight - 65;
	};
	
	Window_Cmd.prototype.makeCommandList = function() {
		this.addCommand("<", 'prev');
		this.addCommand(">", 'next');
		this.addCommand("x", 'cancel');
	}
})();
 
Ela não trava, apenas fica desativada. Para reativa-la novamente basta chamar o método activate nas funções handlers. Exemplo:
Código:
Scene_Book.prototype.nextPage = function() {
	window_command.activate();
	index++; 
}
 
Estado
Tópico fechado. Não é possível fazer postagens nela.
Voltar
Topo Inferior