Снова обращаюсь за помощью к опытным!
Пользуя плагин, что отображает текст над эвентами и персонажами:
http://forums.rpgmakerweb.com/index.php?/topic/49393-nasty-text-pop-over-events
получил глюк со своим параллаксом (на изображении MV, с графикой из Ace, если это вызовет вопросы):
Откуда ноги ростут у проблемы, вобщем, понятно:
Плагин берет свою функцию:
Sprite_Character.prototype.start_namepop = function(){
if (this.namepop === "") return;
var b_width = (this.namepop.length * (this.char.namepop_size/2) + 24)+this.char.namepop_width;
var b_height = (this.char.namepop_size + 28) + this.char.namepop_height;
var x = (0 - b_width/2) + this.char.namepop_ox;
var y = (0 - b_height - 34) - this.char.namepop_oy;
this.namepop_sprite = new Window_CharacterPop(x,y,b_width,b_height,this.char);
this.namepop_sprite.opacity = this.char.windowOpacity; //Nel Add
//###Change Font, Font Size, Color, and Time based off Character values##
this.namepop_sprite.contents.textColor = this.char.namepop_color;
this.namepop_sprite.contents.outlineColor = this.char.namepop_outlineColor;
this.namepop_sprite.contents.outlineWidth = this.char.namepop_outlineWidth;
this.namepop_sprite.contents.fontSize = this.char.namepop_size;
this.namepop_sprite.contents.fontFace = this.char.namepop_font;
this.namepop_sprite.contents.fontItalic = this.char.namepop_ital;
this.namepop_sprite.drawTextEx(this.namepop, 0, 0);//, b_width, b_height, 'center');
this.text_timer = this.char.namepop_time;
this.namepop_time = this.char.namepop_time;
this.addChild(this.namepop_sprite);
};
и модернизирует ее вызовом ту, что отображает персонажа:
var Nasty_sprCharacterTxtPop_update_alias = Sprite_Character.prototype.update;
Sprite_Character.prototype.update = function() {
Nasty_sprCharacterTxtPop_update_alias.call(this);
if (this.text_timer > 0 && this.char.textpop_flag === false){
this.text_timer -=1;
if (this.text_timer <= 0){
this.removeChild(this.namepop_sprite);
this.tmer_rat = undefined; //Reset ratio, just to avoid issues
}
else if (this.text_timer < 60){
this.namepop_sprite.contentsOpacity-= 4;
this.namepop_sprite.opacity -= 4;
}
}
if (this.char.textpop_flag === true){
this.namepop = this.char.namepop;
this.removeChild(this.namepop_sprite);
this.start_namepop();
this.char.textpop_flag = false; //Release from update
}
};
То есть, выходит, что вызываемый текст становится частью персонажа, и реагирует на верхние слои параллакса соответствуя.
Повысить высоту текста через комманду
this.namepop_sprite.z = 999; из функции
Sprite_Character.prototype.start_namepop = function() результата не дает - если я правильно понял - для текста персонаж - это сцена, за рамки которой он не выходит. Попытки добавить ось z к чему-либо вызываемого в функции с обработкой персонажа
Sprite_Character.prototype.update = function() {, тоже безуспешны. Работает, разве что
this.z = 999;, но она поднимает и текст и персонажа.
Наверное, тут опять можно решить проблему правильным обращением к команде, которого я не знаю.
Не подскажете, как здесь поступить?